「ピボットテーブルの値セルを別シートから参照したら、フィルタを変えるたびに数値がずれる」「レポートの集計ボックスをどう自動更新すればよいかわからない」――こうした悩みを解決するのが GETPIVOTDATA関数 です。ピボットテーブル内の特定の集計値を、フィールド名とアイテム名で検索・参照できるため、ピボットレイアウトの変更後も常に正しい値を返します。
GETPIVOTDATAはMOS Excel 365 エキスパート(MO-211)の「高度な機能を使用したグラフやテーブルの管理」の出題範囲に含まれます。本記事では、構文の基本・引数の動的化・ダッシュボード連携・エラー対処まで、実務で即使えるパターンを体系的に解説します。
GETPIVOTDATAの役割:なぜセル直接参照ではいけないのか
ピボットテーブルの値セルを =B5 のようなセル番地で参照すると、次のような問題が発生します。
- 行や列を追加・削除するとセル番地がずれ、参照先が別の値に変わる
- フィルタや行列フィールドの変更で集計値の位置が移動し、参照が意図しないセルを指すようになる
- ピボットテーブルを折りたたむ・展開するだけで番地が変わる
GETPIVOTDATAは 「どのフィールドのどのアイテムの値か」 という条件で集計値を検索するため、ピボットテーブルのレイアウトが変わっても常に同じデータを返します。ダッシュボードや月次レポートのように「別シートにピボットの値を表示したい」場面で特に有効です。
GETPIVOTDATA関数の構文
=GETPIVOTDATA(データフィールド, ピボットテーブル, [フィールド1, アイテム1], [フィールド2, アイテム2], ...)
| 引数 | 説明 | 形式 |
|---|---|---|
| データフィールド | 取り出す集計値のフィールド名。ピボットテーブルの「値」エリアに表示されるヘッダー文字列を引用符付きで指定する | 必須・文字列 |
| ピボットテーブル | ピボットテーブル内の任意のセル参照。絶対参照($A$3 など)で固定するのが一般的 | 必須・セル参照 |
| フィールド1, アイテム1 | 絞り込み条件のペア。フィールド名(”月”)とアイテム値(”2026年3月”)を交互に指定する | 省略可・ペアで繰り返し指定可 |
データフィールドの名称を確認する方法
データフィールド名は、ピボットテーブルの「値」エリアのヘッダーに表示されている文字列と完全一致させる必要があります。集計関数が「合計」の場合は「売上金額」だけで指定できますが、「平均」「カウント」などを設定している場合は「平均 / 売上金額」「データの個数 / 注文番号」のようにヘッダー表示通りに指定します。
確認手順:ピボットテーブル内の値セルをクリックして数式バーを見るか、「値フィールドの設定」ダイアログのカスタム名を確認します。
GETPIVOTDATAの自動挿入:仕組みと設定変更
Excelでは、数式入力中にピボットテーブルの値セルをクリックすると、=C5 のような直接参照ではなく、自動的にGETPIVOTDATAが挿入されます。これはExcelのデフォルト動作です。
自動挿入を無効にしたい場合は次の手順で設定を変更します。
- ピボットテーブル内のセルを選択する
- リボンの「ピボットテーブル分析」タブをクリックする
- 「ピボットテーブル」グループの「オプション」左側にある下向き矢印をクリックする
- 「GetPivotData の生成」のチェックを外す
逆にGETPIVOTDATAを積極的に活用するレポートを作るときは、このチェックをオンにしておくと入力が自動化されて便利です。MOS試験でも、この設定の意味を問われることがあります。
基本例:引数なし・引数ありの比較
例1:集計全体の総合計を取得する
ピボットテーブルの総計セル(右下の合計)を参照するには、フィールド・アイテムのペアを省略します。ピボットテーブルの左上セルが A3 にある場合:
=GETPIVOTDATA("売上金額", $A$3)
すべての行・列を合算した総合計が返ります。
例2:特定の月の売上合計を取得する
行フィールドが「月」、値フィールドが「売上金額」のピボットテーブルで、2026年3月のデータを取り出す例です。
=GETPIVOTDATA("売上金額", $A$3, "月", "2026年3月")
アイテム値の文字列は、ピボットテーブル内に表示されているラベルと完全一致させます。日付のグループ化設定によって「3月」「2026/03」「2026-03-01」など表示形式が変わるため、ピボットテーブルの実際の表示を確認してください。
例3:複数条件(地区×商品カテゴリ)で絞り込む
行フィールドに「地区」、列フィールドに「商品カテゴリ」があるピボットテーブルから、東京の家電売上だけを取り出す例です。
=GETPIVOTDATA("売上金額", $A$3, "地区", "東京", "商品カテゴリ", "家電")
フィールドとアイテムのペアは何組でも追加できます。指定した条件の交差する集計値が返ります。
引数を動的にする:ダッシュボード連携の設計
フィールドやアイテムの引数にセル参照を使うと、セルの値を変えるだけで参照先の集計値を動的に切り替えられます。これがダッシュボード構築の核心です。
設計例:ドロップダウン連動の集計カード
E1セルに月名のドロップダウンリスト(「2026年1月」「2026年2月」…)を配置し、F1セルに地区のドロップダウンを配置します。集計値を表示するセルに次の数式を入力します。
=GETPIVOTDATA("売上金額", $A$3, "月", E1, "地区", F1)
E1・F1の選択を変えるたびに、ピボットテーブルを直接操作することなく集計値が切り替わります。さらに、E1に入力規則(リスト)を設定しておくとミス入力を防げます。
フィールド名もセル参照にする汎用テンプレート
フィールド名そのものをセルから取得することもできます。B1にフィールド名(例:「地区」)、C1にアイテム値(例:「東京」)が入力されているとき:
=GETPIVOTDATA("売上金額", $A$3, B1, C1)
複数のピボットテーブルを切り替えて参照する汎用レポートテンプレートを作るときに役立ちます。
集計関数の違いに対応する書き方
ピボットテーブルの値フィールドに設定した集計関数(合計・平均・カウントなど)によって、データフィールドの指定方法が変わります。
| 集計関数 | ピボットのヘッダー例 | GETPIVOTDATAのデータフィールド指定 |
|---|---|---|
| 合計(デフォルト) | 合計 / 売上金額 | “売上金額” または “合計 / 売上金額” |
| 平均 | 平均 / 売上金額 | “平均 / 売上金額” |
| データの個数 | データの個数 / 注文番号 | “データの個数 / 注文番号” |
| 最大値 | 最大 / 売上金額 | “最大 / 売上金額” |
合計の場合のみ、フィールド名のみ(”売上金額”)でも機能しますが、その他の集計関数はヘッダー表示と完全一致させる必要があります。大文字・小文字・スペースの有無まで一致させてください。
エラーの種類と対処法
| エラー | 主な原因 | 対処法 |
|---|---|---|
| #REF! | pivot_table引数がピボットテーブルの外を指している、またはフィールド・アイテムの組み合わせが見つからない | pivot_tableの参照先がピボットテーブル内にあるか確認し、フィールド名・アイテム名を修正する |
| #VALUE! | データフィールド名の文字列が正しくない、または引数の型が合っていない | ピボットテーブルのヘッダーと一字一句照合する |
| #NAME? | 関数名のスペルミス | GETPIVOTDATAのスペルを確認する |
| #N/A | 指定したアイテムがスライサーやフィルタで非表示になっている | ピボットテーブルのフィルタ・スライサー設定を確認する |
IFERRORでエラー時の表示を制御する
ダッシュボードでエラーをそのまま表示したくない場合は、IFERRORで囲みます。
=IFERROR(GETPIVOTDATA("売上金額", $A$3, "月", E1, "地区", F1), 0)
エラー時は 0(または任意の代替値)を返します。ドロップダウンで「選択してください」のような初期値を選んだときにエラーが出ないよう設定するときに便利です。
実務活用パターン
パターン1:月次レポートの自動更新
別シートに「1月」「2月」…「12月」の集計ボックスを並べ、それぞれのセルにGETPIVOTDATAを設定します。元データが更新されてピボットテーブルを「更新」ボタンで再集計すると、レポートシートの値も自動で更新されます。集計ロジックがピボットテーブルに集約されるため、レポートシートは参照のみになり管理が楽になります。
パターン2:KPIカードのリアルタイム切り替え
「今月の売上」「前月比」「累計」などのKPI数値をカード形式で並べ、各カードに対応するGETPIVOTDATAを設定します。担当者や地区を切り替えるドロップダウンをひとつ配置するだけで、全カードが連動して更新されます。
パターン3:計算フィールドの集計値取得
ピボットテーブルに「粗利率」「前期比」などの計算フィールドを追加している場合も、GETPIVOTDATAでその値を参照できます。データフィールドにはピボットテーブルに表示されているヘッダー(例:「合計 / 粗利率」)をそのまま指定します。
MOS試験(MO-211)との関連
GETPIVOTDATAはMOS Excel 365 エキスパート(MO-211)の「高度な機能を使用したグラフやテーブルの管理」の出題範囲に含まれます。分野別の出題数・配点は公表されていません。
- GETPIVOTDATAの自動挿入設定のオン・オフの手順:「ピボットテーブル分析」タブ → 「GetPivotData の生成」
- データフィールド引数の形式:ピボットヘッダーと完全一致した文字列で指定すること
- フィールドとアイテムのペア指定:行フィールド・列フィールド両方を指定して交差値を取り出す操作
- #REF! エラーの解消:pivot_table引数をピボットテーブル内のセルに修正する操作
学習時間の目安
MOS Excel 365 エキスパート(MO-211)全体の学習時間の目安は、アソシエイト合格後に追加で60~100時間です(公式非公表のため目安)。GETPIVOTDATAはピボットテーブルの基本操作(作成・フィールド配置・更新)を習得した上で取り組むと理解が深まります。
よくある質問(FAQ)
Q1. セル直接参照とGETPIVOTDATA、どちらを使うべきですか?
ピボットテーブルの値を参照するなら、原則としてGETPIVOTDATAを使うことを推奨します。セル直接参照は「ピボットのレイアウトが絶対に変わらない」という前提を必要とするため、運用上のリスクがあります。GETPIVOTDATAはフィールド名とアイテム名で検索するため、行列を並び替えたり折りたたんだりしても正しい値を返します。
Q2. GETPIVOTDATAの自動挿入を止めてセル直接参照にしたい場合はどうすればよいですか?
「ピボットテーブル分析」タブの「GetPivotData の生成」のチェックを外すことで、クリックしたときにセル番地が直接入力されるようになります。ただし前述の理由から、レポートやダッシュボードにはGETPIVOTDATAを使うほうが安全です。
Q3. ピボットテーブルを別シートに置いてもGETPIVOTDATAは使えますか?
はい、使えます。pivot_table引数に別シートのセルを指定するだけです。
=GETPIVOTDATA("売上金額", データシート!$A$3, "月", E1)
ダッシュボードシートとピボットテーブルシートを分けて管理するときに有効な書き方です。
Q4. ピボットテーブルを更新したとき、GETPIVOTDATAの値も自動更新されますか?
ピボットテーブルを「更新」(右クリック→更新、またはデータ→すべて更新)すると、GETPIVOTDATAの参照値も自動的に更新されます。ブックを開くたびに自動更新したい場合は「ピボットテーブルのオプション」→「データ」タブ→「ファイルを開くときにデータを更新する」で設定できます。
Q5. スライサーで絞り込んだ状態でGETPIVOTDATAを使うとどうなりますか?
スライサーの絞り込みはGETPIVOTDATAの結果に反映されます。スライサーで「東京」だけ選択されている状態で、地区フィールドのアイテムに「大阪」を指定すると #REF! になります。ダッシュボードでスライサーと組み合わせる場合は、IFERRORで非表示条件時のエラー処理を必ず入れましょう。
まとめ
GETPIVOTDATAは、ピボットテーブルのレイアウト変更に影響されない安定した集計値参照を実現する関数です。フィールド名とアイテム名で検索するため、行列の追加・削除・折りたたみが起きても常に正しい値を返します。
実務では「引数にセル参照を使って動的クエリ化する」設計が特に強力で、ドロップダウンと組み合わせることでコードなしの高機能ダッシュボードを構築できます。MOS Excel 365 エキスパート(MO-211)の「高度な機能を使用したグラフやテーブルの管理」の対策としても、ピボットテーブルの基本操作とあわせて習得しておきましょう。
PR
MOS Excel 365 エキスパート(MO-211)に対応した定番対策テキスト。GETPIVOTDATAを含むピボットテーブル応用・グラフやテーブルの高度な管理など、出題範囲をプロジェクト形式の実技問題で習得できる一冊。
MOS試験の最新の受験料は、公式サイトの「受験料・価格」(https://mos.odyssey-com.co.jp/exam/examfee.html)でご確認ください。
