Excelでピボットテーブルのセルを参照しようとしたら、見慣れない「GETPIVOTDATA」という関数が勝手に入力された。そんな経験はありませんか?
「普通のセル参照を使いたいのに邪魔だな」と感じる方は多いはずです。実際、検索でも「GETPIVOTDATA 無効化」は人気のキーワードになっています。
でも実は、この関数の仕組みを知ると便利な場面がたくさんあります。この記事では、自動挿入をオフにする方法から、あえて使いこなす実務テクニックまで解説していきますね。
GETPIVOTDATA関数とは?ピボットテーブル参照時に自動挿入される関数
GETPIVOTDATA関数(読み方:ゲット・ピボット・データ)は、ピボットテーブルからデータを取り出す専用の関数です。名前のとおり「Get(取得)+ Pivot Data(ピボットのデータ)」という意味ですね。
通常のセル参照(=B5など)との大きな違いがあります。GETPIVOTDATA関数は、フィールド名とアイテム名でデータを指定します。そのため、ピボットテーブルのレイアウトが変わっても正しい値を取得できるのがメリットです。
対応バージョンはExcel 2016以降(Microsoft 365含む)です。
ピボットテーブルを「=」で参照すると自動挿入される仕組み
Excelにはピボットテーブルの値を参照する際に、自動でGETPIVOTDATA関数を生成する機能があります。「Generate GetPivotData」というオプションが初期状態でオンになっているためです。
具体的な発生手順は次のとおりです。
- ピボットテーブルの外側のセルを選択する
=を入力する- ピボットテーブル内の値セルをクリックする
=B5ではなくGETPIVOTDATA関数が自動入力される
単純に隣のセルの値をコピーしたいだけのときは、正直邪魔に感じますよね。無効化の方法はこの後のセクションで解説します。
基本構文と引数の意味
GETPIVOTDATA関数の構文は次のとおりです。
=GETPIVOTDATA(data_field, pivot_table, [field1, item1, field2, item2, ...])
各引数の意味を表にまとめました。
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| data_field | 必須 | 取得したい値フィールド名(例: “売上”) |
| pivot_table | 必須 | ピボットテーブル内の任意のセル参照 |
| field1, item1 | 任意 | 絞り込み条件のフィールド名とアイテム名のペア |
| field2, item2 | 任意 | 追加の絞り込み条件(最大126ペアまで指定可能) |
data_fieldとfield/itemは文字列なので、ダブルクォーテーションで囲みます。日付や数値の場合はクォーテーション不要ですよ。
GETPIVOTDATA関数の自動挿入を無効化する方法
「GETPIVOTDATA関数は使わないから消したい」という方向けに、無効化の方法を2つ紹介します。
方法①:Excelオプションから全ブック一括で無効化
すべてのブックに対して一括で無効化する方法です。頻繁にピボットテーブルを使う方はこちらがおすすめです。
- [ファイル] → [オプション] をクリック
- [数式] タブを選択
- 「ピボットテーブル参照にGetPivotData関数を使用する」 のチェックを外す
- [OK] で閉じる
これで、どのブックでも=B5のような通常のセル参照が使われるようになります。
方法②:ピボットテーブル分析タブから該当ブックだけ無効化
特定のブックだけ無効化したい場合はこちらの方法です。
- ピボットテーブル内の任意のセルを選択
- [ピボットテーブル分析] タブをクリック
- [ピボットテーブル] → [オプション] を展開
- 「GetPivotDataの生成」 のチェックを外す
方法①は全体設定、方法②はブック単位の設定です。状況に応じて使い分けてみてください。
GETPIVOTDATA関数の基本的な使い方
ここからは「あえてGETPIVOTDATA関数を使う」メリットを見ていきましょう。
引数を直接入力してデータを取得する
たとえば、ピボットテーブルから「東京」の「売上」合計を取り出す場合は次のように書きます。
=GETPIVOTDATA("売上", A3, "地域", "東京")
"売上": 取得したい値フィールドA3: ピボットテーブル内のセル(どのセルでもOK)"地域","東京": 絞り込み条件
通常の=B5のようなセル参照だと、ピボットテーブルの行や列を入れ替えた瞬間にずれてしまいます。GETPIVOTDATA関数ならフィールド名で指定するので、レイアウト変更に強いのが最大のメリットです。
セル参照で動的にフィールド・アイテムを指定する
引数をセル参照にすれば、数式を書き換えずに取得条件を変更できます。
=GETPIVOTDATA("売上", A3, "地域", E1)
セルE1に「大阪」と入力すれば大阪の売上が、「福岡」に変えれば福岡の売上が返ります。入力規則のドロップダウンリストと組み合わせると、さらに使い勝手が良くなりますよ。
複数条件を指定してデータを絞り込む
GETPIVOTDATA関数の本領は、複数条件での絞り込みです。フィールドとアイテムのペアを追加するだけで条件を増やせます。
部門×月など2軸で値を取り出す
「営業部」の「4月」売上を取り出す例です。
=GETPIVOTDATA("売上", A3, "部門", "営業部", "月", "4月")
フィールド・アイテムのペアは最大126組まで指定できます。ペアの順番は自由なので、"月", "4月", "部門", "営業部" と書いても同じ結果です。
ドロップダウンリストと連動させる実務パターン
セルE1に部門名、セルF1に月名のドロップダウンリストを設定すると、こう書けます。
=GETPIVOTDATA("売上", A3, "部門", E1, "月", F1)
リストから選ぶだけでピボットテーブルのデータを切り替えられます。簡易的なダッシュボードとして使える便利なテクニックです。ピボットテーブル本体を触らなくていいので、元データを壊すリスクもありません。ぜひ試してみてくださいね。
IFERROR関数と組み合わせてエラーを防ぐ
GETPIVOTDATA関数は、指定したアイテムがピボットテーブルに存在しないと#REF!エラーを返します。フィルターで絞り込んだときに非表示になったアイテムでも同様です。
IFERROR関数(エラー時に代替値を返す関数)でラップすれば、エラー表示を防げます。
=IFERROR(GETPIVOTDATA("売上", A3, "地域", E1), "")
この数式なら、E1に存在しない地域名を入れても空白が返ります。"該当なし"や0に置き換えることも可能です。
ドロップダウンリストと組み合わせる場合は、IFERRORでの囲みをセットにしておくのがおすすめですよ。フィルター操作で一時的にアイテムが非表示になっても、レポートが#REF!だらけにならずに済みます。
実務活用例:月次レポートを自動化する
GETPIVOTDATA関数が最も活躍するのは、月次レポートの自動化です。
ピボットのレイアウトが変わっても壊れない参照式を作る
通常のセル参照でレポートを作ると、こんなトラブルが起きがちです。
- ピボットテーブルに新しい行が追加されて参照先がずれた
- 列の順番を入れ替えたら数値がおかしくなった
- フィールドを非表示にしたら
#REF!エラーが出た
GETPIVOTDATA関数なら、フィールド名とアイテム名で値を取得します。行や列の並び順が変わっても、正しい値を返し続けます。毎月のレポートテンプレートに組み込んでおけば、ピボットテーブルを更新するだけでレポートも自動更新されますよ。
VLOOKUP・INDEXとの使い分けポイント
ピボットテーブルからデータを取り出す方法は他にもあります。VLOOKUP関数やINDEX関数との使い分けを整理しましょう。
- GETPIVOTDATA関数: ピボットテーブル専用。レイアウト変更に強い。条件指定が直感的
- VLOOKUP関数: 一般的な表の検索向き。ピボットテーブルでは列位置がずれるリスクあり
- INDEX関数 + MATCH関数: 柔軟性は高いが、ピボットテーブルのレイアウト変更には対応しにくい
ピボットテーブルのデータを参照するなら、GETPIVOTDATA関数が最適です。一方、元データのテーブルを直接検索するなら、SUMIF関数やSUMIFS関数のほうが適しているケースもあります。用途に応じて使い分けてみてくださいね。
GETPIVOTDATA関数のよくあるエラーと対処法
GETPIVOTDATA関数で発生する主なエラーは2つです。
#REF! エラー
最も多いエラーです。次のいずれかが原因で発生します。
pivot_table引数のセルにピボットテーブルが存在しない- 指定したフィールド名やアイテム名がピボットテーブルにない
- フィルターでアイテムが非表示になっている
- ピボットテーブルを削除・移動した
対処法は、フィールド名・アイテム名のスペルを確認することです。フィルターが原因の場合は、IFERRORで囲むか、IF関数で事前チェックするとよいでしょう。
#VALUE! エラー
引数の指定が不正な場合に発生します。よくある原因は次のとおりです。
data_fieldにダブルクォーテーションを付け忘れた- フィールドとアイテムをペアにしていない(片方だけ指定した)
- 引数の型が正しくない(数値を文字列で指定した等)
引数は必ず「フィールド名, アイテム名」のペアで指定してくださいね。
まとめ
GETPIVOTDATA関数は、ピボットテーブルからデータを取り出す専用の関数です。
この記事のポイントを振り返りましょう。
- 自動挿入が不要なら、Excelオプションまたはピボットテーブル分析タブから無効化できる
- フィールド名・アイテム名で値を指定するため、レイアウト変更に強い
- 複数条件の絞り込みは、フィールド・アイテムのペアを追加するだけ
- IFERRORと組み合わせれば、フィルター操作時の
#REF!エラーを防げる - 月次レポートの自動化に最適。ドロップダウンリストと組み合わせると簡易ダッシュボードにもなる
「自動挿入がうざい」と思って無効化するだけではもったいない関数です。ぜひ一度、レポート作成に活用してみてくださいね。
