「ピボットテーブルで集計した東エリアの売上を、別シートのダッシュボードに引っ張りたい」「四半期別レポートに、ピボットの特定セルだけ参照したい」と思ったことはありませんか。普通にセル参照(=ピボット!C5 など)すると、ピボットの構造が変わっただけで参照がズレてしまうのが悩みの種です。
これを解決してくれるのが GETPIVOTDATA関数 です。ピボットテーブルの「フィールド名」と「アイテム名」を指定して値を取り出すので、ピボットの並び替えや展開状態が変わってもズレません。
この記事では、GoogleスプレッドシートのGETPIVOTDATA関数の構文、複数条件の指定方法、東エリア・Q1の売上を別シートから参照する実例、Excel版との違い、IFERROR と組み合わせたエラー対策までまとめて整理します。
GETPIVOTDATA関数とは?
GETPIVOTDATA関数(読み方:ゲットピボットデータ)は、ピボットテーブルから特定の集計値を取り出す関数 です。関数名は「GET(取得する)+ PIVOT DATA(ピボットデータ)」の素直な組み合わせです。
通常のセル参照(=A1 のような書き方)と違って、ピボットの フィールド名とアイテム名で値を指定 するのが特徴です。たとえば「エリア=東、四半期=Q1 の売上合計」のような自然な指定で値を引っ張れます。
ピボットテーブルは並び替えやドリルダウンで表の構造がしょっちゅう変わります。普通のセル参照だと、表が1行ずれるだけで値が壊れてしまいますが、GETPIVOTDATAなら 構造が変わっても正しい値を取り続けてくれる のが最大のメリットです。
NOTE
GETPIVOTDATA関数を使うには、参照先にピボットテーブルが存在している必要があります。普通のテーブルや単なる集計表では使えません。Googleスプレッドシートの「挿入」→「ピボットテーブル」で作成した正規のピボットを対象にする関数です。
GETPIVOTDATA関数の書き方(構文と引数)
GETPIVOTDATA関数の構文は次のとおりです。
=GETPIVOTDATA(値の名前, ピボットテーブルのセル, [元の列, ピボットのアイテム, ...])
引数は最初の2つが必須で、それ以降は条件のペアを必要なだけ追加します。
| 引数 | 必須 | 説明 |
|---|---|---|
| 値の名前 | 必須 | ピボットテーブル内の値フィールド名(例: "SUM of 売上") |
| ピボットテーブルのセル | 必須 | 参照先ピボットテーブル内の 任意のセル |
| 元の列 | 任意 | ソースデータの列名(例: "エリア") |
| ピボットのアイテム | 任意 | 元の列に対応する値(例: "東") |
3つ目以降は 「列名」と「値」をペア で指定します。条件を増やすには、ペアを必要なだけ繰り返します。「エリア=東、四半期=Q1」なら、"エリア", "東", "四半期", "Q1" のように4つの引数を続けて書きます。
TIP
「値の名前」はピボットテーブル上に表示されている 正確な表示名 を指定する必要があります。Googleスプレッドシートでは「SUM of 売上」「COUNTA of 顧客名」のように
関数名 of 列名の形式が自動付与されます。ピボットの値フィールドのヘッダ行を見て、表示通りに入力するのが確実です。
実用例1:ピボットの総計を取り出す
最もシンプルな使い方です。シート「ピボット」のA1セルからピボットテーブルが配置されているとします。値フィールドは「売上」を合計しているので、表示名は「SUM of 売上」になります。
別シートのダッシュボードで、総計をひっぱるには次のように書きます。
=GETPIVOTDATA("SUM of 売上", ピボット!A1)
第2引数の ピボット!A1 は、ピボットテーブル内のどのセルでも構いません。A1 でも D5 でも、ピボットの範囲内なら同じ結果になります。「このセルが含まれるピボットを参照する」という指定の意味だからです。
返ってくる値は、ピボットテーブル右下の総計セルと同じ値です。ダッシュボードに「全社売上」をデカデカと表示する用途にぴったりです。
実用例2:東エリアの売上を取り出す
条件を1つ追加して、特定エリアの売上を取り出します。
=GETPIVOTDATA("SUM of 売上", ピボット!A1, "エリア", "東")
引数の意味は次のとおりです。
"SUM of 売上": 取り出したい値フィールド名ピボット!A1: ピボットテーブル内のセル"エリア": ソースデータの 列名(ピボットテーブルの行ラベル名ではなく元データの列名)"東": その列の絞り込み値
ここで重要なのは 「元の列」に指定するのはソースデータの列名 という点です。ピボットテーブル上の表示名(行ラベルとして表示されている文字列)ではなく、元データの列ヘッダの名称を指定します。多くの場合は同じですが、ピボット側で名称を変更している場合は元データ側の名称を使います。
実用例3:複数条件(東エリア・Q1)の指定
条件を2つ以上指定するには、列名と値のペアを続けて書きます。
=GETPIVOTDATA("SUM of 売上", ピボット!A1, "エリア", "東", "四半期", "Q1")
これで「エリア=東 かつ 四半期=Q1 の売上合計」が返ってきます。3つ目以降の引数は 2つで1ペア という構造を意識すると組み立てやすくなります。
3条件以上も同じ要領で書けます。
=GETPIVOTDATA("SUM of 売上", ピボット!A1, "エリア", "東", "四半期", "Q1", "商品カテゴリ", "家電")
NOTE
ピボットテーブルに含まれていない条件を指定すると
#REF!エラーになります。たとえば「エリア」フィールドをピボットの行や列・フィルターのいずれにも配置していない状態で"エリア", "東"を指定するとエラーです。条件にしたいフィールドは必ずピボット側で行・列・フィルターのいずれかに入れておきましょう。
実用例4:セル参照を引数に使う
Googleスプレッドシート版の便利な特徴として、引数にセル参照を使える という点があります。条件値をセルに入れておけば、プルダウンの値で動的にレポートを切り替えられます。
たとえば、A1セルにエリア名(東・西・北・南)のプルダウンを用意し、A2セルに四半期(Q1〜Q4)のプルダウンを用意するとします。
=GETPIVOTDATA("SUM of 売上", ピボット!A1, "エリア", A1, "四半期", A2)
A1とA2の値を切り替えるだけで、対応する売上が動的に表示されます。簡易ダッシュボードを作るときの定番パターンです。
TIP
値フィールド名(第1引数)も同様にセル参照で書けます。
=GETPIVOTDATA(B1, ピボット!A1, ...)のように B1 セルに「SUM of 売上」「SUM of 利益」のように切り替え可能な選択肢を入れておけば、表示する指標も切り替えられる柔軟なダッシュボードが組めます。
Excel版との違い
GETPIVOTDATA関数はExcel版にも同名の関数があり、計算ロジックは基本的に同じです。ただし、Googleスプレッドシート版とExcel版でいくつかの細かい違い があります。
| 項目 | Googleスプレッドシート | Excel |
|---|---|---|
| 自動挿入 | なし(= クリックでも普通のセル参照になる) | あり(= してピボット内をクリックすると自動挿入) |
| セル参照を引数に使う | 可能 | 一部制限あり |
| 配列で複数値を返す | 不可 | Excel 365 以降は可能 |
| 第3引数以降の構文 | 列名・値のペアを直書き | 同じ |
最も体感差が大きいのが 自動挿入の有無 です。Excelではピボットの集計セルを = 入力後にクリックすると、自動的に GETPIVOTDATA関数 が組み立てられます。一方、Googleスプレッドシートでは普通のセル参照(=ピボット!C5)が入力されます。
そのため、Googleスプレッドシートで GETPIVOTDATA を使うには 手で関数を書く必要 があります。慣れるまで少し面倒に感じますが、構文はシンプルなので一度覚えれば応用が利きます。
WARNING
Excelに慣れている方が「ピボットをクリックしただけで自動的にGETPIVOTDATAになる」と期待すると、Googleスプレッドシートでは普通のセル参照が入ってしまい、後でピボットの構造が変わったときに値が壊れる、というトラブルになりがちです。Googleスプレッドシートでは手書きが基本、と覚えておきましょう。
IFERRORと組み合わせたエラー対策
GETPIVOTDATA関数は条件に該当する値がないと #REF! などのエラーを返します。たとえば「東エリア・Q1」のデータが0件だと、エラー表示でダッシュボードが汚れてしまいます。
そんなときは IFERROR関数 と組み合わせるのが定番です。
=IFERROR(GETPIVOTDATA("SUM of 売上", ピボット!A1, "エリア", "東", "四半期", "Q1"), "データなし")
エラーの場合は "データなし" という文字列を返してくれるので、ダッシュボードの見栄えが保てます。0で埋めたい場合は次のように書きます。
=IFERROR(GETPIVOTDATA("SUM of 売上", ピボット!A1, "エリア", "東", "四半期", "Q1"), 0)
数値で返しておけば、後段の集計や条件付き書式とも素直に連携できます。
よくあるエラーと対処法
| エラー | 原因 | 対処法 |
|---|---|---|
#REF! | 指定した条件の組み合わせがピボットに存在しない/フィールドがピボットに配置されていない | ピボットの行・列・フィルター設定とアイテム名を確認 |
#N/A | 値フィールド名が一致しない(「SUM of 売上」と書いたが実際は「Sum of 売上」など大文字小文字違い) | ピボットの値ヘッダ行を見て、表示通りに入力 |
#VALUE! | 引数の数や型が不正(条件のペアが奇数個で終わっているなど) | 列名と値のペア構造を再確認 |
| 古い値が返る | ピボットを縮小して該当行が非表示になっている | ピボットを展開するか、フィルター・並び替えを確認 |
特に多いのが、ピボットを 縮小(折りたたみ)したことで参照範囲外 になるパターンです。GETPIVOTDATA は「現在ピボットに表示されている範囲」のデータを参照するので、折りたたまれた階層内の小計はエラーになる場合があります。ピボットを展開した状態で参照するのが安全です。
TIP
ピボットの値フィールド名は、Googleスプレッドシートでは「SUM of 売上」のように先頭が大文字で出ます。設定変更で名称を上書きできる(例: 「合計売上」など)ので、可読性を高めたい場合はピボット側で名称をリネームしておき、GETPIVOTDATA でも同じ名前を指定すると引数が読みやすくなります。
まとめ
GoogleスプレッドシートのGETPIVOTDATA関数は、ピボットテーブルから特定の集計値を取り出すための関数です。要点を整理すると次のとおりです。
- 構文:
=GETPIVOTDATA(値の名前, ピボットテーブルのセル, [元の列, アイテム, ...]) - 第1引数: ピボットの値フィールド名(「SUM of 売上」など正確な表示名)
- 第2引数: ピボットテーブル内の任意のセル
- 第3引数以降: 列名と値の ペア単位 で条件を追加
- セル参照を引数に使える → プルダウン連動の動的ダッシュボードが作れる
- Excelとの違い: 自動挿入なし。Googleスプレッドシートでは手書き必須
- IFERROR と組み合わせる とエラー時の見栄えを整えられる
ピボットテーブルの構造が変わっても値がズレないという特性は、レポートやダッシュボードを長く使い続けるうえで大きな安心材料です。エリア別・四半期別・商品別といった集計値を別シートに展開するレポート作りで、ぜひ活用してみてください。
ピボットの値そのものを違う形で集計したいときは SUMIFS関数 や QUERY関数 と使い分けるのも有効です。条件で値を絞り込むだけなら SUMIFS、複雑な絞り込み・並び替え・SQL風の記述なら QUERY、ピボット集計済みの値を引っ張るなら GETPIVOTDATA、と覚えておくと判断がスムーズになります。
