- ベストアンサー
ピボットテーブルについて
あるデータを元にピボットテーブルを使って表を作成しました。 表を作った後からデータを追加した場合、(例えば表の元となっているデータ欄に行を挿入してデータを追加する)どのようにすれば表に反映できますか? 既存のデータの数値を変えるのであればピボットテーブルの「データの更新」で更新できますが、行を追加してデータの範囲が増えた場合、どうすればそれを表に反映できるのでしょうか? 今のその方法がわからないため追加データが出ると、一から表を作り直しています・・・。 どうか教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ピボットテーブルを右クリックして、『戻る』ボタンで、ピボットテーブルウイザード-2/4 まで戻り、 使用するデータの範囲を再設定しています。 これが面倒と思う時は、ピボットテーブルに使用するデータの範囲に範囲名をつけておき、データ(行)が追加されたら、該当範囲が自動的に変更されるようにしています。 ピボットテーブルウイザード-2/4の使用するデータの範囲には、この範囲名を入力します。 準備として、次の関数を考えます。 (1-1)文字列が入力された列の、入力された最下段の行番号を計算する関数 例えば、A列に表題『A1:性別』があって、2行目から、男、女、男、女、女・・・が 下方向に入力された列です。 =MATCH("",$A:$A,-1) (1-2)数値が入力された列の、入力された最下段の行番号を計算する関数 例えば、A列に表題『A1:年齢』があって、2行目から、22、32、33、19、23・・・が 下方向に入力された列です。 =MATCH(MAX($A:$A)+1,$A:$A,1) (2)ピボットテーブルに使用するデータ範囲に範囲名をつけます 該当範囲はセルA1から入力してあり、A列は数値属性とします。列数は『3』としておきます。 該当範囲のどこかを選択して(シートを特定する意味)、挿入→名前→定義で『名前の定義』ダイアログを表示。 範囲名『DataArea』をつけることにします。名前の窓に『DataArea』を入力(カギカッコはいりません)を入力。 参照範囲に =OFFSET($A$1,0,0,MATCH(MAX($A:$A)+1,$A:$A,1),3) を入力してOK。 意味:Offset関数を指定して範囲を決めています。 $A$1 : 基準セルはA1。動かないように、絶対指定($)しています。 0,0 : 左上の基準セルはA1でA1も含むので、A1自身ということで、 移動距離は行方向=0、列方向=0です。 MATCH(MAX($A:$A)+1,$A:$A,1) : データの登録された最下段の行番号です。 3 : データ範囲の列数です。(3列しかない例です) このようにして、対象の範囲に範囲名を設定します。 A1を左上にした、行数が入力行数で、列数が3の矩形のセル範囲が定義されます。 A列が文字列なら(1-1)を使います。範囲がA列から始まっていなかったら式をずらします。 (3)ピボットテーブルウイザード-2/4の使用するデータの範囲に『DataArea』を入力します。 (4)これで、行を追加した場合は、ピボットテーブルを右クリックして『データの更新』でピボットテーブルが 更新されます。(Excel97で確認)
その他の回答 (1)
元となっているデータの指定で、 $A$1:$C$15 のような指定ではなく、 列全体を指定してください. そうすると、 Sheet1!$A:$C のような感じになります. これで、どこまでデータを追加しても 「データの更新」一発で大丈夫です. ちなみに、私が使っているのはExcel2000です.
お礼
今回のデータの欄外上部には作成日や為替レートなどが記入されており、教えて頂いた方法では無理のようでした。 教えて頂いた方法は、シートにデータだけを載せた場合に使わせて頂く事にします。 相談に乗っていただきありがとうございました。
お礼
頻繁にデータの追加がある訳ではないので「戻る」を使用したところ思う通りの結果となりました。ありがとうございました。 但し、このようにデータ更新すると、表のフォントや表示形式が元に戻ってしまうのですね。 また、非表示にしていた列も表れてしまう・・・。 これは仕方の無いことなのでしょうか?
補足
補足すべきところをお礼に書き込んでしまいました。 重複してしまいますが再度補足させて頂きます。 頻繁にデータの追加がある訳ではないので「戻る」を使用したところ思う通りの結果となりました。ありがとうございました。 但し、このようにデータ更新すると、表のフォントや表示形式が元に戻ってしまうのですね。 また、非表示にしていた列も表れてしまう・・・。 これは仕方の無いことなのでしょうか?