例えばピボットテーブルがあります。
営業の担当者名と商品毎の受注金額のクロス集計表になっています。
ちなみに、フィールドリストはこうなってます。
ここで、セル"B2"に"加藤 泰江"さんの"アメリカンクラッカー"の受注金額"\5,400"、つまりセル"C9"の値を引用してみます。
セル"B2"で"="(イコール)を入力して、セル"C9"を選択すると、自動的に"GETPIVOTDATA関数"が入力されます。
関数の引数は、ピボットテーブルの値"金額"(A6)の"氏名"が"加藤 泰江"さん"商品名"が"アメリカンクラッカー"と言う意味にまります。
んで、結果は"5400"になりました。
つまり、セル"C9"を引用したのではなく、"加藤 泰江"さんの"アメリカンクラッカー"を引用したわけです。
なので、行ラベルの並び順を変えてみても、、、
加藤さんのデータは"C25"に移動してしまいましたが、ちゃんと追っかけています。
また、今度はピボットテーブルの集計を変えてみます。
行ラベルに"氏名"と"商品名"をレイアウトしてみます。
すると、このようなピボットテーブルになりました。
が、これもきっちり"B916"の値を表示しています。
今度は、ピボットテーブルから"商品名"を削除して、"氏名"と全ての商品の受注金額の"合計"だけにしてみます。
すると、引用すべきデータがピボットテーブルに表示されてないため、エラー"#REF"が表示されました。
引数にセルを指定する
また、"氏名"や"商品名"の引数は"加藤 泰江"や"アメリカンクラッカー"等のテキストデータではなく、通常の関数の様にテキストが入力されたセルを指定することももちろんできます。
こんな一覧表を作って、"氏名"と"商品名"の引数をセルにすると、、
"加藤 泰江"さんと"森上 偉久馬"さんのの"アメリカンクラッカー"と"インドカレーパン"の金額が引用できました。
GETPIVOTDATA関数の解除
このように、ピボットテーブルの外から"="でピボットテーブルのセルを選択すると自動的に"GETPIVOTDATA関数"が入力されてしまうのですが、通常通りセルを引用することもできます。
「ピボットテーブルツール」、「オプション」、「ピボットテーブル」から「GetPivotDataの生成」のチェックを外します。
セル"D2"で"="でセル"C9"を選択すると、通常通り"=C9"と入力されました。
GETPIVOTDATA関数の応用
さて、この"GETPIVOTDATA関数"でピボットテーブルの値を引用することによって、ピボットテーブルの中で計算出来ないような式や関数、つまり"集計フィールドの挿入"が出来ないような計算を、ピボットテーブルの外から行うことが出来、データソースのが更新されて、ピボットテーブルの値が更新されても、常に最新の計算結果を求めることができます。
例えば、加藤さんと森上さんのデータにそれぞれ異なる係数を掛けて合計するとか、、、
ピボットテーブルの"集計フィールドの追加"で金額に係数を掛けることは可能ですが、氏名毎に異なる係数を指定することはできません。
また、ピボットテーブルのレイアウトでは適当ではないような場合に、独自の表を作っておいてそこにピボットテーブルのデータを引用するなどの応用が考えられます。例えば、ピボットテーブルの結果を1カ月のカレンダー形式で表示させるとか?
色々応用がありそうですね。。
関連ページ
新しい集計フィールドを追加する