• 作成日 : 2025年8月25日

GETPIVOTDATA関数の使い方:ピボットテーブルからデータを自在に取り出す

GETPIVOTDATA関数は、ピボットテーブルから特定のデータを抽出できるエクセルの便利な関数です。ピボットテーブルのレイアウトが変更されても、指定した条件のデータを確実に取得できるため、レポート作成やダッシュボード構築に役立ちます。複雑に見える構文も、基本を理解すれば誰でも使いこなせるようになります。本記事では、GETPIVOTDATA関数の基礎から実践的な活用法、エラー対処法まで、段階的に解説していきます。

GETPIVOTDATA関数の基本的な使い方

GETPIVOTDATA関数とは

GETPIVOTDATA関数は、ピボットテーブルから特定の集計値を取り出すための専門的な関数です。通常のセル参照と異なり、ピボットテーブルの構造が変わっても、指定した条件に合致するデータを安定して取得できる点が最大の特徴です。

売上データのピボットテーブルから「東京支店の4月の売上」を取得したい場合、通常のセル参照では、ピボットテーブルのレイアウト変更により参照位置がずれてしまいます。しかし、GETPIVOTDATA関数なら、常に正しいデータを取得できます。

基本構文と引数の説明

GETPIVOTDATA関数の基本構文は次のとおりです。

=GETPIVOTDATA(データフィールド, ピボットテーブル, [フィールド1, アイテム1], [フィールド2, アイテム2], …)

各引数の役割を詳しく見ていきましょう。

  • データフィールド:取得したい値のフィールド名を指定します。「売上」「数量」「利益」など、ピボットテーブルの値エリアに配置されているフィールド名を文字列で指定します。
  • ピボットテーブル:データを取得するピボットテーブル内の任意のセルを指定します。通常はピボットテーブルの左上セルを指定することが多いです。
  • フィールドとアイテム(省略可能):抽出条件を指定します。フィールド名とそのアイテム(値)をペアで指定します。複数の条件を指定する場合は、順番に記述します。

自動生成される数式の理解

エクセルには便利な機能があり、ピボットテーブル内のセルを直接参照すると、自動的にGETPIVOTDATA関数が生成されます。

たとえば、(ピボットテーブルの外の)任意のセルで「=」を入力し、ピボットテーブル内のセルB5をクリックすると、以下のような数式が自動生成されます。

=GETPIVOTDATA(“売上”,$A$3,”支店”,”東京”,”月”,”4月”)

この自動生成機能により、関数の構造を理解しやすくなります。ただし、この機能が不要な場合は、ファイルタブのオプションから無効にすることもできます。

実際の使用例

具体的な例として、売上分析のピボットテーブルから特定のデータを取得してみましょう。

ピボットテーブルの構成
  • 行ラベル:支店、商品
  • 列ラベル:月
  • 値:売上金額

東京支店の全商品の合計売上を取得する場合:

=GETPIVOTDATA(“売上金額”, A3, “支店”, “東京”)

東京支店の特定商品(商品A)の4月売上を取得する場合:

=GETPIVOTDATA(“売上金額”, A3, “支店”, “東京”, “商品”, “商品A”, “月”, “4月”)

全支店の4月の合計売上を取得する場合:

=GETPIVOTDATA(“売上金額”, A3, “月”, “4月”)

GETPIVOTDATA関数の実践的な利用シーン

経営ダッシュボードの作成

経営層向けのダッシュボードでは、ピボットテーブルから主要指標を抽出して見やすく配置する必要があります。

GETPIVOTDATA関数を使用することで、動的で信頼性の高いダッシュボードを構築できます。

月次売上推移グラフのデータソースとして、各月のデータを個別に取得:

1月: =GETPIVOTDATA(“売上”, $A$3, “月”, “1月”)

2月: =GETPIVOTDATA(“売上”, $A$3, “月”, “2月”)

3月: =GETPIVOTDATA(“売上”, $A$3, “月”, “3月”)

前年同月比の計算にも活用できます。

当年4月: =GETPIVOTDATA(“売上”, 当年ピボット, “月”, “4月”)

前年4月: =GETPIVOTDATA(“売上”, 前年ピボット, “月”, “4月”)

成長率: =(当年4月/前年4月-1)*100

定型レポートの自動化

毎月作成する定型レポートでは、GETPIVOTDATA関数により手作業を大幅に削減できます。

支店別業績レポートのテンプレートを作成し、各支店のデータを自動取得:

売上高: =GETPIVOTDATA(“売上”, ピボット, “支店”, A2)

利益額: =GETPIVOTDATA(“利益”, ピボット, “支店”, A2)

利益率: =利益額/売上高*100

A2セルに支店名を入力するだけで、その支店の各種指標が自動的に表示されます。支店名をドロップダウンリストにすることで、さらに使いやすくなります。

予実管理での活用

予算と実績の比較分析において、GETPIVOTDATA関数は重要な役割を果たします。

実績ピボットテーブルと予算ピボットテーブルから同じ条件のデータを取得:

実績: =GETPIVOTDATA(“金額”, 実績ピボット, “部門”, B2, “月”, C1)

予算: =GETPIVOTDATA(“金額”, 予算ピボット, “部門”, B2, “月”, C1)

達成率: =実績/予算*100

この仕組みにより、部門と月を変更するだけで、瞬時に予実比較が可能になります。

商品分析レポートの構築

小売業や卸売業では、商品別の詳細分析が欠かせません。GETPIVOTDATA関数を使用して、多角的な商品分析レポートを作成できます。

商品カテゴリ別の売上構成比を算出:

カテゴリ売上: =GETPIVOTDATA(“売上”, ピボット, “カテゴリ”, D2)

全体売上: =GETPIVOTDATA(“売上”, ピボット)

構成比: =カテゴリ売上/全体売上*100

期間を指定した商品別売上ランキングの作成も可能です。各商品の売上データを取得し、RANK関数と組み合わせることで、動的なランキング表を作成できます。

GETPIVOTDATA関数の応用・他関数との組み合わせ

動的な条件指定

GETPIVOTDATA関数の大きな特長は、他のセルの値を参照して動的に条件を変更できる点にあります。

セル参照を使用した柔軟な指定:

=GETPIVOTDATA(“売上”, $A$3, “支店”, B1, “月”, C1)

B1とC1セルの値を変更するだけで、異なる条件のデータを取得できます。

INDIRECT関数と組み合わせることで、さらに高度な動的参照が可能。

=GETPIVOTDATA(“売上”, INDIRECT(“‘” & シート名 & “‘!A3”), “支店”, 支店名)

IF関数との連携

条件に応じて異なるデータを取得する場合、IF関数との組み合わせが効果的です。

閾値を超えた場合のみデータを表示:

=IF(GETPIVOTDATA(“売上”, ピボット, “支店”, A2)>1000000,

GETPIVOTDATA(“売上”, ピボット, “支店”, A2),

“目標未達”)

複数の条件を組み合わせた複雑な判定:

=IF(AND(

GETPIVOTDATA(“売上”, ピボット, “支店”, A2)>目標値,

GETPIVOTDATA(“利益率”, ピボット, “支店”, A2)>0.2),

“優良店舗”, “要改善”)

VLOOKUP関数との併用

マスタデータとピボットテーブルのデータを組み合わせる際に有効です。

商品コードから商品情報を取得し、売上データと結合:

商品名: =VLOOKUP(A2, 商品マスタ, 2, FALSE)

売上: =GETPIVOTDATA(“売上”, ピボット, “商品コード”, A2)

カテゴリ: =VLOOKUP(A2, 商品マスタ, 3, FALSE)

配列数式での活用

複数のGETPIVOTDATA関数を配列として処理することで、一括でデータを取得できます。

月別データの一括取得(動的配列関数を使用):

=MAP(月リスト, LAMBDA(月,

GETPIVOTDATA(“売上”, ピボット, “月”, 月)))

支店別・月別のマトリックス作成:

=MAKEARRAY(支店数, 月数, LAMBDA(i,j,

GETPIVOTDATA(“売上”, ピボット,

“支店”, INDEX(支店リスト,i),

“月”, INDEX(月リスト,j))))

よくあるエラーと対処法

#REF!エラーの解決

#REF!は、指定したフィールド名/アイテム名の組み合わせがピボットテーブルに存在しない・表示されていない、またはピボットテーブル参照が範囲外のときに発生します。

(注)指定したアイテムがピボットに存在しており表示されている場合で、集計結果が0なら 0 が返ります。

アイテム(または組み合わせ)自体が存在しない/表示されていない場合は #REF! になります。

回避策として、IFERRORでラップするか、フィールド名・アイテム名の綴り/表示状態(フィルターで除外されていないか)と参照セルがピボット内かを確認してください。

エラーを回避する方法として、IFERROR関数でラップする:

=IFERROR(GETPIVOTDATA(“売上”, ピボット, “支店”, “新宿”), 0)

より詳細なエラーハンドリング:

=IF(ISERROR(GETPIVOTDATA(“売上”, ピボット, “支店”, A2)),

“データなし”,

GETPIVOTDATA(“売上”, ピボット, “支店”, A2))

フィールド名の不一致

ピボットテーブルのフィールド名と関数で指定した名前が完全に一致しない場合、エラーが発生します。

空白や特殊文字に注意が必要です。「売上 金額」と「売上金額」は異なるフィールドとして認識されます。

正確なフィールド名を確認する方法
  1. ピボットテーブルのフィールドリストを確認
  2. 自動生成されるGETPIVOTDATA関数を参考にする
  3. TRIM関数で余分な空白を除去する

日付フィールドの扱い

日付をアイテムとして指定する場合は、DATE関数などで日付値として指定します。

=GETPIVOTDATA(“売上”, ピボット, “日付”, DATE(2024,4,1))

DATE関数を使用する場合:

=GETPIVOTDATA(“売上”, ピボット, “日付”, DATE(2024,4,1))

(※または、実際の日付型が入ったセル参照を渡します。

=GETPIVOTDATA(“売上”, ピボット, “日付”, F2) )

ピボットテーブルの日付グループ化が適用されている場合は、グループ名で指定。

=GETPIVOTDATA(“売上”, ピボット, “年”, “2024”, “月”, “4月”)

ピボットテーブルの更新に関する注意点

ピボットテーブルを更新した後、GETPIVOTDATA関数が正しく動作しない場合があります。

対処法
  1. ピボットテーブルを右クリックして「更新」を実行
  2. データソースの範囲が正しく設定されているか確認
  3. 計算フィールドや計算アイテムの名前が変更されていないか確認

自動更新の設定により、この問題を軽減できます。

  • ピボットテーブルオプションで「ファイルを開くときにデータを更新する」にチェック

GETPIVOTDATA関数をマスターして分析力を高めよう

GETPIVOTDATA関数は、一見すると複雑に感じるかもしれませんが、ピボットテーブルと組み合わせることで実用性の高い分析機能として活用できます。レポートの自動化やダッシュボードの構築において、この関数を使うことで作業の効率化が期待できます。

基本的な使い方から始めて、徐々に他の関数との組み合わせに挑戦することで、エクセルでのデータ分析スキルが確実に向上するでしょう。エラーに遭遇しても適切に対処できるようになれば、より複雑で価値の高い分析レポートを作成できるようになります。


※ 掲載している情報は記事更新時点のものです。

※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。

関連記事