目次
概要
Excelのピボットテーブルでは、特定の条件に一致する集計結果のみを自動的に取得したいという場面があります。そのようなときに便利なのが GetPivotData
関数です。
本記事では、VBAを使ってピボットテーブルから特定の集計値を取得する方法をご紹介いたします。売上額や数量など、特定の条件に一致する値を正確に取得できるため、レポートの自動化や分析作業に役立ちます。
サンプルコード
Sub GetSpecificPivotValue()
Dim result As Variant
result = ActiveSheet.PivotTables(1).GetPivotData( _
DataField:="合計金額", _
Field1:="支店名", _
Item1:="札幌支店" _
)
MsgBox "集計結果は " & result & " 円です。"
End Sub
コード解説
PivotTables(1)
アクティブシートの1つ目のピボットテーブルを参照しています。.GetPivotData(...)
このメソッドを使うことで、ピボットテーブルから指定した条件に一致する集計値のみを取得できます。DataField:="合計金額"
取得したい数値フィールド(集計対象)を指定します。ここでは「合計金額」としています。Field1:="支店名"
/Item1:="札幌支店"
絞り込み条件として使用するフィールド名とアイテム名を指定します。たとえば「支店名」が「札幌支店」である行の「合計金額」を取得する指定です。MsgBox
取得した値をメッセージボックスで表示しています。処理中の確認やデバッグにも便利です。
注意点
- 該当するデータがピボットテーブル上に表示されていない場合、エラーになります。
- フィールド名やアイテム名のスペルミス、全角・半角の違いにも注意が必要です。
GetPivotData
はデータの再計算を行わないため、現在のピボットテーブルの状態に依存します。
応用例
- 担当者別・商品別の売上をマクロで一括取得
- 月次報告書の自動出力
- チェックリストに合わせて必要な集計データのみ抽出
まとめ
本記事では、VBAの GetPivotData
関数を活用し、ピボットテーブル内の特定条件に一致する集計値を取得する方法をご紹介いたしました。条件を組み合わせることで、より柔軟なデータ抽出が可能となります。
ピボットテーブルの操作を自動化したい場合には、ぜひ本手法を取り入れてみてください。