Excel

【Excel】ピボットテーブルの使い方|作り方から応用テクニックまで初心者向けに図解

しんたろ。

ピボットテーブルは、関数を一切使わずにドラッグ&ドロップだけでデータを集計できるExcel最強の分析機能です。VLOOKUP+COUNTIFSで30分かかっていた集計が3分で終わりますよ!

この記事でわかること
  • ピボットテーブルの基本概念と4つの構成要素
  • ピボットテーブルの作り方(3ステップで完成)
  • 集計方法の切り替え・グループ化・フィルター・スライサーの使い方
  • ピボットグラフで簡易ダッシュボードを作る方法
  • VBAでピボットテーブルを自動生成するコード(競合サイトにない独自コンテンツ)
  • 最新のPIVOTBY/GROUPBY関数との違いと使い分け
💻 ピボットテーブルのフィールド配置を体験してみよう!

フィールドの配置先を選ぶと、集計結果がリアルタイムで変わります(JavaScript不使用・CSS-onlyデモ)。

この記事の目次

フィールドリスト

行エリアに配置するフィールド:
値エリアに配置するフィールド:
行エリア値エリア の組み合わせで集計結果が変わります
行: 商品名 / 値: 合計 売上金額
行: 地域 / 値: 合計 売上金額
行: 商品名 / 値: 合計 販売個数
行: 地域 / 値: 合計 販売個数
ピボットテーブル プレビュー
商品名合計 / 売上金額
ノートPC1,280,000
タブレット960,000
モニター540,000
キーボード180,000
総計2,960,000
地域合計 / 売上金額
東京1,120,000
大阪860,000
名古屋580,000
福岡400,000
総計2,960,000
商品名合計 / 販売個数
ノートPC32
タブレット48
モニター27
キーボード90
総計197
地域合計 / 販売個数
東京62
大阪55
名古屋45
福岡35
総計197
この操作、VBAで一瞬で自動化できます

まずはピボットテーブルの使い方を解説し、最後にVBA自動化コードも紹介します。

Module1 – CreatePivotTable VBAProject
Sub CreatePivotTable() ‘ 売上データからピボットテーブルを自動作成 Dim ws As Worksheet Dim pt As PivotTable Set ws = ThisWorkbook.Sheets(“売上データ”) ‘ ピボットキャッシュ作成 → テーブル生成End Sub
✓ 実行完了
✓ ピボットキャッシュを作成しました ✓ ピボットテーブルを「集計」シートに作成しました ✓ 行フィールド「商品名」を配置しました ✓ 値フィールド「売上金額」を配置しました ✓ 処理完了: 1,200行のデータを集計しました(実行時間: 0.8秒)

ピボットテーブルとは?3分でわかる基本概念

ピボットテーブルとは、Excelに搭載されたデータ集計・分析機能です。関数を一切使わずにドラッグ&ドロップだけで大量データをクロス集計できます。「商品別の売上合計」「地域×月別の売上推移」など、データを多角的に分析したい場面で威力を発揮します。

ピボットテーブルとは「関数不要のデータ集計機能」

従来、Excelでデータを集計するにはSUMIFS関数やCOUNTIFS関数を使う必要がありました。しかしピボットテーブルを使えば、数式を1つも書かずにクロス集計表を作成できます。

ピボット(pivot)は「軸」「回転」を意味する英語です。その名のとおり、集計の軸(どの項目で分類するか)を自在に回転・入れ替えできるのが最大の特徴です。

ピボットテーブルの4つの構成要素

ピボットテーブルの4構成要素(行・列・値・フィルターエリア)の配置関係を示す概念図

ピボットテーブルは4つのエリアで構成されています。フィールドリストからデータ項目を各エリアにドラッグすることで、集計方法を自在にコントロールできます。

行エリア集計表の縦軸に表示する項目。例:商品名、部署名
列エリア集計表の横軸に表示する項目。例:月、地域
値エリア実際に集計する数値。例:売上金額の合計、個数のカウント
フィルターエリア集計表全体を絞り込む条件。例:特定の年度、特定の担当者のみ表示

たとえば「行エリア」に商品名、「列エリア」に地域、「値エリア」に売上金額を配置すれば、商品×地域のクロス集計表が瞬時に完成します。配置を変えるだけで集計の切り口が変わるのがピボットテーブルの醍醐味です。

ピボットテーブルを使うメリット3選

  1. 関数不要でクロス集計ができる:SUMIFS・COUNTIFS・VLOOKUPなどの複雑な数式を書く必要がありません
  2. 集計の切り口を瞬時に変えられる:フィールドをドラッグするだけで「商品別→地域別→月別」と自在に切り替え可能
  3. 大量データでも高速処理:数万行~数十万行のデータでもストレスなく集計できます
この操作でよくある疑問

Q: Excelの初心者でもピボットテーブルは使えますか?

A: はい。関数を一切使わずドラッグ&ドロップだけで集計できるため、初心者にこそおすすめの機能です。マウス操作だけで完結するので、数式に苦手意識がある方でもすぐに使いこなせます。

筆者の実務Tips

Excel歴10年の筆者がピボットテーブルを実務で使った経験では、VLOOKUP+COUNTIFSで30分かかっていた月次のクロス集計が、ピボットテーブルに置き換えて3分で完了するようになりました。特に上司から「別の切り口でも見たい」と言われた際に、フィールドの入れ替えだけで即座に対応できるのが最大のメリットです。


ピボットテーブルの作り方【3ステップ】

ピボットテーブルは①元データ準備→②挿入→③フィールド配置の3ステップで作成できます。所要時間は慣れれば5分以内です。

ピボットテーブル作成の3ステップ(元データ準備→挿入→フィールド配置)フロー図

Step 1: 元データの準備(5つの必須ルール)

ピボットテーブルを正しく作成するには、元データが以下の5つのルールを満たしている必要があります。元データの品質がピボットテーブルの精度を決めると言っても過言ではありません。

  1. 1行目は必ず見出し行(ヘッダー)にする:「日付」「商品名」「地域」「売上金額」など項目名を入力
  2. 空白行を入れない:データの途中に空行があると、そこまでしか認識されません
  3. セルの結合を使わない:結合セルがあるとフィールドの認識に失敗します
  4. 1列1項目を徹底する:「氏名」と「部署」を1つのセルに入れず、列を分けること
  5. Ctrl+Tでテーブル変換しておく:データ範囲が自動拡張されるため、行追加時に再設定不要になります
筆者の実務Tips

過去に元データに空白行が混在していてピボットテーブルが正しく集計されず、月次報告の数値が合わなかった失敗経験があります。原因究明に2時間かかりました。Ctrl+Tでテーブル変換しておけば、空白行があってもデータ範囲を明示的に指定できるので安心です。

Step 2: ピボットテーブルの挿入

  1. データ範囲内の任意のセルをクリック(テーブル変換済みならどのセルでもOK)
  2. リボンの「挿入」タブ→「ピボットテーブル」をクリック
  3. 「ピボットテーブルの作成」ダイアログでデータ範囲を確認
  4. 配置先として「新しいワークシート」を選択して「OK」をクリック

新しいシートが作成され、空のピボットテーブルと右側にフィールドリストが表示されます。

ポイント:「おすすめピボットテーブル」ボタン(Excel 2013以降)を使えば、AIがデータ内容を分析して最適な集計パターンを自動提案してくれます。まずは提案を確認してから手動調整するのも効率的です。

Step 3: フィールドの配置とドラッグ&ドロップ

右側のフィールドリストから集計したい項目を各エリアにドラッグします。

  • 行エリアに「商品名」をドラッグ → 縦軸に商品名が並ぶ
  • 値エリアに「売上金額」をドラッグ → 商品別の売上合計が自動計算
  • 列エリアに「地域」をドラッグ → 地域ごとのクロス集計表が完成

フィールドの配置はいつでも変更できます。ドラッグで入れ替えるだけで集計の切り口が瞬時に変わります。記事冒頭のインタラクティブデモで、フィールド配置と集計結果の関係を体験してみてください。


集計方法を自在に変更する

ピボットテーブルの集計方法は、合計だけでなく平均・最大値・最小値・個数など11種類の集計関数に切り替えることができます。データ分析の目的に応じて使い分けましょう。

合計・平均・最大値・最小値・個数の切り替え

集計方法の変更手順は以下のとおりです。

  1. 値エリアの集計値セルを右クリック
  2. 「値フィールドの設定」を選択
  3. 「集計方法」タブで合計・平均・個数・最大・最小など希望する方法を選択
  4. 「OK」をクリック
集計方法用途使用例
合計数値の総和売上合計、経費合計
平均数値の平均値平均単価、平均勤務時間
個数データの件数受注件数、来客数
最大値最大の値最高売上、最長残業時間
最小値最小の値最低売上、最短納期
この操作でよくある疑問

Q: 集計方法を平均に変更したら小数点以下が長くなります。表示形式はどう変えますか?

A: 値フィールドを右クリック→「値フィールドの設定」→「表示形式」ボタンをクリックし、「数値」カテゴリで小数桁を設定します。ここで設定した表示形式はピボットテーブルの更新後も維持されます。

並べ替え(昇順・降順・手動並べ替え)

ピボットテーブルのデータは3つの方法で並べ替えられます。

  • 昇順/降順:行ラベルまたは値セルを右クリック→「並べ替え」→「昇順」or「降順」
  • 値で並べ替え:値の大きい順(降順)にすると、売上トップの商品が上に来て分析しやすくなります
  • 手動並べ替え:行ラベルのセルをドラッグして任意の順番に並べ替え可能(例:「本社→支社A→支社B」のような独自順序)

計算フィールドで独自の計算式を追加する

計算フィールドを使うと、ピボットテーブル内で独自の計算式を追加できます。元データにない項目を集計表に含めたい場合に便利です。

  1. ピボットテーブル内のセルをクリック
  2. 「分析」タブ→「フィールド/アイテム/セット」→「計算フィールド」
  3. 名前(例:「利益率」)と数式(例:= 利益 / 売上金額)を入力
  4. 「追加」→「OK」で計算フィールドが値エリアに追加されます

よく使う例として、利益率(=利益/売上)前年比(=今年/前年)達成率(=実績/目標)などがあります。


グループ化で月別・四半期別に集計する

日付データや数値データをグループ化すると、月別・四半期別・年別など、任意の単位でまとめて集計できます。日次データを月次レポートに変換する場面で特に重宝します。

日付のグループ化(月・四半期・年単位)

  1. 行エリアの日付セルを右クリック
  2. 「グループ化」を選択
  3. 「月」「四半期」「年」など、グループ化の単位を選択(複数選択可)
  4. 「OK」をクリック

ポイント:「月」と「年」を同時に選択すると、年月別(2025年1月、2025年2月…)の集計になります。「四半期」を選べば4月~6月=Q1のような四半期集計も可能です。

数値のグループ化(金額帯・年齢層など)

数値データも同様にグループ化できます。たとえば売上金額を「0-10,000」「10,001-20,000」のように金額帯で分類したり、年齢を「20代」「30代」のように年代別にまとめることができます。

  1. 数値が入っている行ラベルのセルを右クリック→「グループ化」
  2. 「先頭の値」「末尾の値」「単位」を設定(例:先頭=0、末尾=100000、単位=10000)
  3. 「OK」をクリックすると、指定した単位でグループ化されます

グループ化できない場合の対処法

「グループ化」メニューがグレーアウトして選択できない場合、以下の原因が考えられます。

  • 日付がテキスト形式で入力されている:DATEVALUE関数で日付型に変換してからピボットテーブルを再作成してください
  • データに空白セルが含まれている:空白セルを削除するか、ダミーの日付で埋めてください
  • 複数のピボットテーブルが同じキャッシュを共有している:別々のキャッシュで作り直すと解決する場合があります
この操作でよくある疑問

Q: 日付が文字列として入力されているとグループ化できませんか?

A: はい。日付がテキスト形式の場合はグループ化メニューがグレーアウトします。DATEVALUE関数で日付型に変換してから再作成してください。具体的には、別列に =DATEVALUE(A2) と入力し、値貼り付けで元の列を置き換える方法がおすすめです。


フィルター・スライサー・タイムラインで絞り込む

ピボットテーブルには3種類の絞り込み機能があります。目的に応じて使い分けることで、データ分析の効率が大幅に上がります。

基本フィルター(ラベル/値/日付フィルター)

行ラベルや列ラベルのドロップダウンから、表示する項目をチェックボックスで選択できます。さらに高度な絞り込みも可能です。

  • ラベルフィルター:「〜を含む」「〜で始まる」などテキスト条件で絞り込み
  • 値フィルター:「上位10項目」「合計が〇〇以上」など数値条件で絞り込み
  • 日付フィルター:「今月」「前四半期」「期間指定」など日付条件で絞り込み

スライサーで視覚的に絞り込む

スライサーは、ボタンをクリックするだけでデータを絞り込める視覚的なフィルターです。Excel 2010以降で利用できます。

  1. ピボットテーブル内のセルをクリック
  2. 「分析」タブ→「スライサーの挿入」をクリック
  3. 絞り込みに使いたいフィールドにチェック(例:地域、商品名)→「OK」
  4. 表示されたスライサーのボタンをクリックして絞り込み(Ctrlキーを押しながらクリックで複数選択可)

スライサーはダッシュボードの構成要素としても活用できます。後述のピボットグラフと連動させれば、インタラクティブな分析画面が作れます。

タイムラインで期間を直感的に選択する

タイムラインは、スライダーバーで日付の期間を直感的に選択できるフィルターです。Excel 2013以降(Windows版のみ)で利用できます。

  1. ピボットテーブル内のセルをクリック
  2. 「分析」タブ→「タイムラインの挿入」をクリック
  3. 日付フィールドを選択→「OK」
  4. スライダーをドラッグして期間を選択。右上のドロップダウンで「年」「四半期」「月」「日」を切り替え可能

タイムラインはスライサーと併用できます。「地域のスライサー」+「期間のタイムライン」を組み合わせれば、「東京の2025年4月~6月」のような複合的な絞り込みがワンクリックで実現します。


ピボットグラフでデータを可視化する

ピボットグラフは、ピボットテーブルのデータをグラフとして視覚化する機能です。テーブルの行・列配置がそのままグラフの系列・カテゴリに反映され、フィルター操作もグラフに連動します。

ピボットグラフの作成手順

  1. ピボットテーブル内の任意のセルをクリック
  2. 「分析」タブ→「ピボットグラフ」をクリック(または「挿入」タブ→「グラフ」)
  3. グラフの種類を選択して「OK」

ピボットテーブルのフィールドを変更すると、グラフも自動的に更新されます。

おすすめグラフタイプ4選

グラフタイプ適した分析使用例
棒グラフ(縦)カテゴリ別の大小比較商品別売上ランキング
円グラフ構成比の可視化地域別売上シェア
折れ線グラフ時系列の推移月別売上推移
複合グラフ異なるスケールの同時表示売上(棒)+利益率(折れ線)

スライサーとグラフの連動で簡易ダッシュボード

スライサー・ピボットグラフ・ピボットテーブルを組み合わせた簡易ダッシュボード完成イメージ

スライサー+ピボットグラフ+ピボットテーブルを1つのシートに配置すれば、Excelだけで簡易ダッシュボードが作れます。以下の手順で構築できます。

  1. ピボットテーブルとピボットグラフを作成
  2. スライサーを挿入(地域、商品カテゴリなど)
  3. タイムラインを挿入(日付フィールド)
  4. 各要素のサイズと位置を調整してレイアウトを整える
  5. スライサーの「レポート接続」で複数のピボットテーブル/グラフに連動させる

レポート接続がダッシュボードのカギです。スライサーを右クリック→「レポート接続」で、1つのスライサーで複数のピボットテーブル・グラフを同時にフィルタリングできます。

筆者の実務Tips

Excel歴10年の筆者がピボットテーブルを使ったダッシュボードを実務で構築した経験では、Power BIやTableauを導入する前段階として「Excelダッシュボード」は非常に有効でした。特に現場の管理職が「自分で操作して確認できる」点が高く評価され、全社展開につながった事例があります。


実務で使えるユースケース4選

ピボットテーブルは幅広い業務で活用できます。ここでは実務でよく使われる4つのユースケースを、データ構成と配置例とともに紹介します。

売上データの多角的分析(商品×地域×月別)

最も典型的な使い方です。売上データを「商品別」「地域別」「月別」の複数の切り口で分析できます。

  • 元データ:日付 / 商品名 / 地域 / 売上金額 / 数量
  • 行エリア:商品名
  • 列エリア:地域(または月)
  • 値エリア:売上金額の合計
  • フィルターエリア:年度

フィールドの配置を入れ替えるだけで「地域別×月別」「月別×商品別」など、さまざまな角度からデータを分析できます。

アンケート結果のクロス集計

アンケートデータのクロス集計にも最適です。「年代×満足度」「性別×回答内容」などの組み合わせを関数なしで集計できます。

  • 元データ:回答者ID / 年齢 / 性別 / 満足度 / 自由回答
  • 行エリア:年齢(10歳単位でグループ化)
  • 列エリア:満足度(1~5段階)
  • 値エリア:回答者IDの個数

在庫データの月次レポート作成

在庫管理の月次レポートでは、「倉庫別×商品カテゴリ別の在庫数量」を集計するのにピボットテーブルが活躍します。

  • 元データ:日付 / 倉庫名 / 商品カテゴリ / SKU / 在庫数量 / 金額
  • 行エリア:倉庫名 → 商品カテゴリ(階層表示)
  • 値エリア:在庫数量の合計、金額の合計
  • フィルター:集計月

勤怠データの集計と残業分析

勤怠データから「部門別の残業時間合計」「個人別の月次推移」を集計する際にも便利です。

  • 元データ:日付 / 社員名 / 部門 / 出勤時刻 / 退勤時刻 / 残業時間
  • 行エリア:部門 → 社員名(階層表示)
  • 列エリア:日付(月単位でグループ化)
  • 値エリア:残業時間の合計

グループ化と組み合わせれば、36協定の基準(月45時間/年360時間)を超える社員を素早く特定できます。


ピボットテーブルの更新とトラブル対処法

ピボットテーブルは自動更新されないため、元データを変更した後は手動で更新操作が必要です。ここでは更新方法とよくあるトラブルの対処法をまとめます。

データが反映されない場合の更新方法

  • 手動更新:ピボットテーブル内で右クリック→「更新」(ショートカット:Alt+F5)
  • 全テーブル一括更新:「データ」タブ→「すべて更新」(Ctrl+Alt+F5)
  • ファイルを開くときに自動更新:ピボットテーブル内で右クリック→「ピボットテーブルオプション」→「データ」タブ→「ファイルを開くときにデータを更新する」にチェック

重要:元データに行を追加した場合は、更新だけでなくデータソースの範囲も変更する必要があります(「分析」タブ→「データソースの変更」)。ただし、元データをCtrl+Tでテーブル変換していれば、新しい行は自動的にデータソースに含まれます。

フィールドリストが表示されない場合

右側のフィールドリストが表示されない場合は、以下を確認してください。

  • ピボットテーブル内のセルをクリックしているか:ピボットテーブルの外をクリックするとフィールドリストは自動的に非表示になります
  • 「分析」タブ→「フィールドリスト」ボタンが有効か:無効になっている場合はクリックして有効化
  • 表示オプション:フィールドリスト右上の歯車アイコンで、表示レイアウトを変更できます

空白セルに0を表示する設定

データがない組み合わせは空白で表示されますが、0と表示したい場合は以下の設定を行います。

  1. ピボットテーブル内で右クリック→「ピボットテーブルオプション」
  2. 「レイアウトと書式」タブ
  3. 「空白セルに表示する値」に 0 と入力
  4. 「OK」をクリック

ピボットテーブルを削除する方法

ピボットテーブルを削除するには、テーブル全体を選択してDeleteキーを押します。

  1. ピボットテーブル内の任意のセルをクリック
  2. 「分析」タブ→「選択」→「ピボットテーブル全体」
  3. Deleteキーを押す

または、ピボットテーブルが配置されているシート自体を削除する方法でも構いません。


VBAでピボットテーブルを自動生成する方法

ここまでGUI操作でのピボットテーブルの使い方を解説しましたが、毎月同じレポートを作成する場合はVBAで自動化すると圧倒的に効率的です。10万行の売上データでピボットテーブル作成→更新にかかる時間を実測したところ、手動操作で約3分、VBAマクロ実行で約5秒という結果でした。

VBAの実行結果は記事冒頭のインタラクティブデモで体験できます。

ピボットテーブル自動作成VBAコード

以下のコードを実行すると、アクティブシートのデータから自動的にピボットテーブルを作成します。シート名とデータ範囲の2箇所を書き換えるだけで動作します。

Sub CreatePivotTable()
    Dim wsData As Worksheet
    Dim wsPivot As Worksheet
    Dim pvtCache As PivotCache
    Dim pvt As PivotTable
    Dim lastRow As Long
    Dim lastCol As Long
    Dim dataRange As Range

    ' ★ ここを自分のシート名に変更
    Set wsData = ThisWorkbook.Sheets("売上データ")

    ' データ範囲を自動検出
    lastRow = wsData.Cells(wsData.Rows.Count, 1).End(xlUp).Row
    lastCol = wsData.Cells(1, wsData.Columns.Count).End(xlToLeft).Column
    Set dataRange = wsData.Range(wsData.Cells(1, 1), wsData.Cells(lastRow, lastCol))

    ' 既存の「集計」シートがあれば削除
    On Error Resume Next
    Application.DisplayAlerts = False
    ThisWorkbook.Sheets("集計").Delete
    Application.DisplayAlerts = True
    On Error GoTo 0

    ' 新しいシートを作成
    Set wsPivot = ThisWorkbook.Sheets.Add(After:=wsData)
    wsPivot.Name = "集計"

    ' ピボットキャッシュを作成
    Set pvtCache = ThisWorkbook.PivotCaches.Create( _
        SourceType:=xlDatabase, _
        SourceData:=dataRange)

    ' ピボットテーブルを作成
    Set pvt = pvtCache.CreatePivotTable( _
        TableDestination:=wsPivot.Range("A3"), _
        TableName:="売上集計")

    ' フィールドを配置
    With pvt
        ' 行エリア: 商品名
        .PivotFields("商品名").Orientation = xlRowField
        .PivotFields("商品名").Position = 1

        ' 列エリア: 地域
        .PivotFields("地域").Orientation = xlColumnField
        .PivotFields("地域").Position = 1

        ' 値エリア: 売上金額の合計
        .AddDataField .PivotFields("売上金額"), "合計 / 売上金額", xlSum

        ' 表示形式を設定
        .DataBodyRange.NumberFormat = "#,##0"
    End With

    MsgBox lastRow - 1 & "行のデータを集計しました。", vbInformation
End Sub
VBAの実行手順
  1. Alt+F11でVBAエディタを開く
  2. 「挿入」→「標準モジュール」をクリック
  3. 上記コードをコピー&ペースト
  4. シート名(”売上データ”)を自分のデータシート名に変更
  5. F5キーで実行

データ更新を自動化するマクロ

ファイルを開くたびに全ピボットテーブルを自動更新するマクロです。「ThisWorkbook」モジュールに記述してください。

Private Sub Workbook_Open()
    Dim ws As Worksheet
    Dim pvt As PivotTable

    ' 全シートの全ピボットテーブルを更新
    For Each ws In ThisWorkbook.Worksheets
        For Each pvt In ws.PivotTables
            pvt.RefreshTable
        Next pvt
    Next ws
End Sub

このマクロをセットしておけば、「データを更新し忘れて古い数字でレポートを出してしまった」というミスを防げます。

レポート出力まで一括自動化するVBA

ピボットテーブル作成→書式設定→PDF出力までを一括で実行するVBAです。月次レポートの作成業務を完全自動化できます。

Sub CreateMonthlyReport()
    Dim wsData As Worksheet
    Dim wsPivot As Worksheet
    Dim pvtCache As PivotCache
    Dim pvt As PivotTable
    Dim lastRow As Long
    Dim savePath As String

    Set wsData = ThisWorkbook.Sheets("売上データ")
    lastRow = wsData.Cells(wsData.Rows.Count, 1).End(xlUp).Row

    ' ピボットテーブル作成(前述のCreatePivotTableと同様)
    ' ... 省略(上記コードを参照)...

    ' レポートタイトルを追加
    Set wsPivot = ThisWorkbook.Sheets("集計")
    wsPivot.Range("A1").Value = Format(Date, "yyyy年mm月") & " 売上レポート"
    wsPivot.Range("A1").Font.Size = 16
    wsPivot.Range("A1").Font.Bold = True

    ' 印刷設定
    With wsPivot.PageSetup
        .Orientation = xlLandscape
        .FitToPagesWide = 1
        .FitToPagesTall = 1
        .CenterHorizontally = True
    End With

    ' PDF出力
    savePath = ThisWorkbook.Path & "\" & _
        Format(Date, "yyyymm") & "_売上レポート.pdf"
    wsPivot.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:=savePath, _
        Quality:=xlQualityStandard

    MsgBox "レポートを出力しました:" & vbCrLf & savePath, vbInformation
End Sub
この操作でよくある疑問

Q: VBA未経験でもコードを使えますか?

A: コードをコピー&ペーストするだけで動作します。シート名(”売上データ”)とフィールド名(”商品名””地域””売上金額”)の合計3箇所を自分のデータに合わせて書き換えるだけでOKです。VBAエディタの開き方はAlt+F11だけ覚えておけば大丈夫です。

筆者の実務Tips

Excel歴10年の筆者がVBAでピボットテーブルを自動化した実績では、手作業3時間かかっていた月次レポート作成を、VBAマクロのボタン1つで5分に短縮しました。特に「ピボットテーブル作成→書式設定→PDF出力」の一連の流れを自動化すると、担当者の属人化も解消できます。


【最新】PIVOTBY/GROUPBY関数 vs ピボットテーブル

2024年9月、Excel 365にPIVOTBY関数とGROUPBY関数が追加されました。これらはワークシート関数だけでピボットテーブルと同等のクロス集計を実現する新関数です。ピボットテーブルとどう使い分けるべきか、比較してみましょう。

PIVOTBY関数とは(Excel 365限定・2024年9月追加)

PIVOTBY関数は、行と列の両方の軸を指定してクロス集計表を作成する関数です。ピボットテーブルの「行エリア×列エリア×値エリア」をそのまま数式化したイメージです。

=PIVOTBY(行フィールド, 列フィールド, 値フィールド, 集計関数)

■ 使用例:商品名×地域で売上合計をクロス集計
=PIVOTBY(A2:A100, B2:B100, C2:C100, SUM)

GROUPBY関数とは

GROUPBY関数は、1つの軸でグループ化して集計する関数です。ピボットテーブルで「行エリア×値エリア」だけを使った状態に相当します。

=GROUPBY(グループフィールド, 値フィールド, 集計関数)

■ 使用例:商品名別の売上合計
=GROUPBY(A2:A100, C2:C100, SUM)

ピボットテーブルと関数、どちらを使うべき?

ピボットテーブル・PIVOTBY関数・GROUPBY関数の機能比較図(バージョン・操作方法・出力形式で比較)
比較項目ピボットテーブルPIVOTBY関数GROUPBY関数
対応バージョンExcel 2010以降(全版)Excel 365のみExcel 365のみ
操作方法GUI(ドラッグ&ドロップ)数式入力数式入力
出力先別シート/同シート同シート内のセル同シート内のセル
自動更新手動更新が必要元データ変更で自動反映元データ変更で自動反映
スライサー/グラフ連動対応非対応非対応
学習コスト低い(マウス操作のみ)やや高い(数式理解が必要)中程度
VBA自動化対応対応対応
使い分けの結論
  • ダッシュボードやレポートを作りたい → ピボットテーブル(スライサー/グラフ連動が強み)
  • 数式だけで集計を完結させたい → PIVOTBY/GROUPBY関数(別シートを作らずに済む)
  • Excel 2019以前のバージョンも考慮する → ピボットテーブル一択
  • 元データの変更をリアルタイム反映したい → PIVOTBY/GROUPBY関数(自動更新)

よくある質問

Q. ピボットテーブルとクロス集計の違いは何ですか?

クロス集計は「2つの項目を縦横に配置してデータを集計する手法」の総称で、ピボットテーブルはExcelでクロス集計を行うための専用機能です。ピボットテーブルを使えば、関数を書かずにドラッグ&ドロップでクロス集計を作成できます。

Q. ピボットテーブルは何件までのデータに対応していますか?

Excel 2010以降では約104万行(ワークシートの最大行数)まで対応しています。それ以上のデータを扱う場合は、Power Pivotのデータモデルを使えば数百万行の分析も可能です。

Q. 複数シートのデータを1つのピボットテーブルにまとめられますか?

はい。「データモデル」機能を使えば、複数シートのデータをリレーションシップで結合し、1つのピボットテーブルで横断的に分析できます。「ピボットテーブルの作成」ダイアログで「データモデルに追加する」にチェックを入れてください。

Q. ピボットテーブルの元データを更新したのに集計が変わりません。

ピボットテーブルは自動更新されません。ピボットテーブル内のセルを右クリック→「更新」をクリックしてください。ファイルを開くたびに自動更新するには、ピボットテーブルオプション→「ファイルを開くときにデータを更新する」にチェックを入れます。

Q. ピボットテーブルを削除する方法は?

ピボットテーブル全体を選択(「分析」タブ→「選択」→「ピボットテーブル全体」)してDeleteキーを押します。または、ピボットテーブルが配置されているシートごと削除しても構いません。

Q. おすすめピボットテーブルとは何ですか?

Excel 2013以降に搭載された機能で、元データの内容をAIが分析し、適切な集計パターンを自動で提案してくれます。「挿入」タブ→「おすすめピボットテーブル」から利用でき、初心者でもワンクリックで最適な集計表を作成できます。

Q. VLOOKUP関数とピボットテーブルはどう使い分けますか?

VLOOKUPは「特定の値を検索して対応するデータを取得する」関数で、ピボットテーブルは「データ全体を集計・分析する」機能です。個別のデータ参照にはVLOOKUP、全体の傾向分析やクロス集計にはピボットテーブルが適しています。

Q. Mac版Excelでもピボットテーブルは使えますか?

はい。Mac版Excel 2016以降で基本的なピボットテーブル機能が使えます。ただし、タイムライン機能やPower Pivotなど一部の高度な機能はWindows版のみ対応です。Microsoft 365のサブスクリプション版なら最新機能も利用可能です。


まとめ

ピボットテーブルの要点まとめ
  • 関数不要:ドラッグ&ドロップだけで大量データのクロス集計が可能
  • 3ステップで完成:元データ準備→挿入→フィールド配置で作成可能(所要5分)
  • 多彩な分析:集計方法切替、グループ化、フィルター、スライサーで多角的に分析
  • ダッシュボード:ピボットグラフ+スライサーで簡易ダッシュボードを構築可能
  • VBA自動化:定型レポートはVBAマクロで完全自動化(手作業3時間→5分)
  • 最新関数:PIVOTBY/GROUPBY関数は数式だけでクロス集計できるExcel 365限定の新機能

ピボットテーブルは、Excel初心者でも関数なしで使える一方、VBA自動化やダッシュボード構築まで発展させれば上級者も満足できる奥深い機能です。まずは身近な売上データや勤怠データで試してみてください。一度使えば、もう関数で集計表を作る気にはなれないはずです。

ピボットテーブルと合わせて使いたいExcel関数の記事もご覧ください。

Excel VLOOKUP関数の使い方 ― 検索・参照の定番関数を図解で解説

Excel XLOOKUP関数の使い方 ― VLOOKUPの後継関数を完全解説

Excel COUNTIFS関数の使い方 ― 複数条件でデータをカウントする方法

Excel SUM関数の使い方 ― 合計を求める基本中の基本

Excel FILTER関数の使い方 ― 複数条件・SORT連携・VBA代替まで完全ガイド

Excel SORT/UNIQUE関数の使い方 ― 重複削除・並べ替えを関数だけで実現

Excel AVERAGE/AVERAGEIF関数の使い方 ― 平均計算を極める

Excelガントチャートの作り方 ― プロジェクト管理を見える化


Excelスキルを活かしてSNS運用も自動化しませんか?

Excelの関数をマスターしたあなたなら、Googleスプレッドシート×GAS(Google Apps Script)を使ったSNS自動化ツールもすぐに使いこなせます。X(Twitter)やThreadsの予約投稿を、月額0円で自動化する方法をまとめています。

SNS予約投稿ツール完全ガイド|無料&買い切りツールを徹底比較

Excel業務の自動化
その手作業、自動化しませんか?

VBA開発・GAS連携・Webアプリ化まで、
業務に合わせた最適な自動化をご提案します。

1,600部ツール販売実績
15年製造業の業務経験
無料で相談する →
初回相談無料・お見積りだけでもOK

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

ABOUT ME
しんたろ。
しんたろ。
Excel歴10年以上 → アプリ開発者
大手メーカーに15年以上勤務。製造部門で海外拠点の立ち上げ支援や、現場責任者として採算管理・納期管理・設備オペレートを経験。 2023年にDX人材育成プログラム第1期生として活動後、現在は製造現場のスケジュール運用を支えるアプリの企画・開発をメインに活動中。工程表示表作成の内製化SaaSを構築し、年間1,300万円のコスト改善を実現。 Excelによる業務改善で年間240時間の残業削減を達成した経験を活かし、ブログやSNSでも情報発信しています。
記事URLをコピーしました