Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Excel 2016)
ピボットのフィールド一括追加
投稿日時: 19/02/22 15:53:30
投稿者: せりむ

仕事にて他部署より回ってきた元データをピボットテーブルにて集計したいのですが、
値フィールドの項目数が多すぎるために一括で値フィールドの追加を行いたいです。
どなたかお知恵をお貸しいただけませんでしょうか?
 
 
元データの作りがA〜J列がフラグで、(例えばA列:1〜100、B列:A〜Z、C列:一〜百…)
1行目に365日分(365列分)の日付が入っており、(20180101〜20181231)
K列以降に項目の組み合わせごとの数字が日ごとに入っている状態となっております。
 
自分の集計ではA列の区別のみ使用し、フラグ毎・日毎の合計値を表にしたいのですが、
これはピボットの行フィールドにA列を、
値フィールドに365項目を一つ一つドラッグ&ドロップしていくしかないのでしょうか?
一括で値フィールドに追加するすべがありましたらお教えください。
 
すいません、よろしくお願い致します。

回答
投稿日時: 19/02/22 16:24:38
投稿者: WinArrow
投稿者のウェブサイトに移動

 
 
 
A列の値ごとに
日毎の集計
をしようとしているんでしょうか?
  
   
A列で並べてあるという前提になりますが、
ピボットテーブルではなく
「データ」ー「小計」機能では、ダメでしょうか?
 

投稿日時: 19/02/22 16:50:38
投稿者: せりむ

>WinArrow様
おっしゃる通りA列のフラグ種別ごとに日別の合計値を集計したいです。
 
ご指摘頂きました小計機能を今少し触ったのですが
やはり集計するフィールドは一つ一つチェックが必要なのでしょうか?
行数が8万行近くあるためか1日分のチェックに対してフリーズしてしまいました。
他の手があると大変ありがたいです。
 
念のため追記:
ピボットを一度手動で選択した場合はフリーズなどもなく集計できました。

回答
投稿日時: 19/02/22 18:18:22
投稿者: WinArrow
投稿者のウェブサイトに移動

「小計」機能は、フリーズですか?
「小計」機能には、「アウトライン」も含まれるので、
メモリ負荷が多いのかな?と思います。
 
データが変わる都度、ピボットテーブルを作成する
と考えると項目数が多いと作業負荷が掛かりますが、
 
1回作成したピボットテーブルを更新する
という方法で対応すると、効率的になります。
問題は、データ件数が、増えたり/減ったりすることだと思います。
 
ピボットテーブルのオプションタブの中に「データソースの変更」というコマンドがあります。
このボタンで、データ範囲を変更できるので、データ増減に対応できます。
 
 

回答
投稿日時: 19/02/22 18:25:22
投稿者: んなっと

必ず表形式の具体例を添えてください。
 
このサイトで知った方法。
K列ではなく、わかりやすくD列から日付列。
 
    A   B   C     D     E     F     G     H     I     J
1 分類1 分類2 分類3 2019/1/1 2019/1/2 2019/1/3 2019/1/4 2019/1/5 2019/1/6 2019/1/7
2   1   A   一    42    30    32    93    76    70    70
3   1   A   二    18    64    18    90    75    54    72
4   1   B   三    71    70    20    57    75    97    97
5   1   B   四    54    85    94    22    40    68    17
6   2   B   五    36    53    70    71    96    32    66
7   2   C   六    27    44    24    26    26    67    10
8   3   C   七    85    54    23    83    94    59    73
 
1.
 上の表の範囲を全部選択
→[データ]
 [テーブルまたは範囲から]
 [先頭行〜]にチェックを入れてOK
 
2.PowerQweryエディターが起動したら
 Shiftキーを押しながら[分類3]をクリックして、[分類1]〜[分類3]のフラグ列をすべて選択
→[変換]
 [列のピボット解除▼] の▼クリック
 [その他の列のピボット解除]
→[ファイル] [閉じて読み込む]
 
    A   B   C     D  E
 1 分類1 分類2 分類3   属性 値
 2   1   A   一 2019/1/1 42
 3   1   A   一 2019/1/2 30
 4   1   A   一 2019/1/3 32
 5   1   A   一 2019/1/4 93
 6   1   A   一 2019/1/5 76
 7   1   A   一 2019/1/6 70
 8   1   A   一 2019/1/7 70
 9   1   A   二 2019/1/1 18
10   1   A   二 2019/1/2 64
11   1   A   二 2019/1/3 18
12   1   A   二 2019/1/4 90
13   1   A   二 2019/1/5 75
14   1   A   二 2019/1/6 54
15   1   A   二 2019/1/7 72
16   1   B   三 2019/1/1 71
17   1   B   三 2019/1/2 70
18   1   B   三 2019/1/3 20

回答
投稿日時: 19/02/22 18:57:13
投稿者: WinArrow
投稿者のウェブサイトに移動

んなっとさん
の方法は、
 
横に展開しているデータを縦にする方法だと思うのですが、
 
現在、80000件 x 365= 29,200,000行になる計算です。
1シートの最大行数は、1,048,576なので、無理かも?
 

投稿日時: 19/02/22 19:08:32
投稿者: せりむ

>WinArrow様
データを更新する際に都度データの日付が変わるためか再度選択が必要になるようなので
厳しそうです、(操作方法が悪いのでしょうか…?)
 
 
>んなっと様
 >[先頭行〜]にチェックを入れてOK
と頂いておりますが、基本的なところで申し訳ありません、
該当項目が発見できず
Expression.Error: '(作業シート名)!_FilterDatabase' という名前の Excel テーブルが見つかりませんでした。
となってしまい、解決が出来ませんでした。
 
また下記、求めている結果のイメージになります。
縦横がどうしてもうまく合わせることが出来ず余計な混乱を招くかと思ったのですが
記載を試みました。(現状につきましては正にご記載いただきましたものです)
 
 A列  B列  C列  D列  E列  F列  G列  H列  I列 
1行目"フラグ" 19/1/1 19/1/2 19/1/3 19/1/4 19/1/5 19/1/6 19/1/7
2行目 1 185  249 164 262 266 289 256
3行目 2 63   97 94 97 122 99 76
4行目 3 85   54 23 83 94 59 73
5行目 4 ・ ・ ・ ・ ・ ・ ・
6行目 5   ・ ・ ・ ・ ・ ・ ・
7行目 6   ・ ・ ・ ・ ・ ・ ・
8行目 7   ・ ・ ・ ・ ・ ・ ・
9行目 8   ・ ・ ・ ・ ・ ・ ・



 
このような形でA列以外の区分けを無くしたいです。
申し訳ございません。よろしくお願い致します。

回答
投稿日時: 19/02/23 11:33:46
投稿者: んなっと

なるほど。
365回クリックしてチェックするのが面倒」ということだけなんですね。
  
 新規シート作成
→[データ] [統合]
→元の表に戻って全範囲選択
→[上端行][左端行]だけチェック
→[OK]
→一番上の行を選択して、表示形式を「日付」に修正

回答
投稿日時: 19/02/23 12:50:34
投稿者: んなっと

引用:
元データの作りがA〜J列がフラグで、(例えばA列:1〜100、B列:A〜Z、C列:一〜百…)
1行目に365日分(365列分)の日付が入っており、(20180101〜20181231)
K列以降に項目の組み合わせごとの数字が日ごとに入っている状態となっております。
  
自分の集計ではA列の区別のみ使用し、フラグ毎・日毎の合計値を表にしたいのです

 
今後は、最初から表形式の具体例を添えて質問してください。
横方向にずれるのを防ぐ方法は、ほかの皆さんは自分で調べて見つけていますよ。

回答
投稿日時: 19/02/23 15:47:01
投稿者: んなっと

行数が多すぎてうまくいかないときは、約4万行+約4万行に分けましょう。
 
元データがSheet1にあるとして、
 
 新規シート作成、A2選択
→[データ] [統合]
→Sheet1!$2:$40000 [追加]
→Sheet1!$40001:$80000 [追加]
→[左端行]だけチェック
→[OK]
 
※一番上の日付の行はあとから。

投稿日時: 19/02/24 09:36:00
投稿者: せりむ

>んなっと様
ありがとうございます!
データ量が多すぎる場合も記載を頂いていたおかげで
正に望み通りのものとなりました!