Excelで大量のデータを扱うとき、「部署ごとの売上合計を出したい」「日付ごとに件数を数えたい」などの集計作業が必要になることがあります。
こうした処理を手作業で行うのは手間がかかり、ミスの原因にもなります。
そこで役立つのが Power Queryの「グループ化」機能 です。
グループ化を使えば、データを特定の項目でまとめて、合計・平均・件数などを自動で集計できます。
この記事では、Power Queryのグループ化の基本操作から応用テクニックまで、図解イメージを交えてわかりやすく解説します。
Power Queryは、ExcelやPower BIに搭載されているデータ取得・変換ツールです。
「データを整える」「結合する」「不要な列を削除する」など、Excel関数では大変な処理を簡単なクリック操作で自動化できます。
特にビジネス現場では、CSVや会計システムのデータを集計・加工する作業が日常的に発生します。
Power Queryを活用すれば、一度設定しておくだけで次回以降の更新もワンクリックで完了するため、作業効率が大幅にアップします。
その中でも「グループ化」は、データを特定の単位でまとめて分析する際の中心機能 です。
グループ化とは、指定した列の値ごとにデータをまとめる機能です。
たとえば、「部署」列を基準にグループ化すると、同じ部署名のデータが1つにまとまり、合計や平均などの集計を行うことができます。
| 部署 | 社員名 | 売上金額 |
|---|---|---|
| 営業 | 田中 | 100000 |
| 営業 | 鈴木 | 120000 |
| 開発 | 山田 | 80000 |
| 開発 | 佐藤 | 95000 |
この表を「部署」でグループ化し、「売上金額の合計」を求めると、次のようになります。
| 部署 | 売上合計 |
|---|---|
| 営業 | 220000 |
| 開発 | 175000 |
このように、グループ化を使えば、Excel関数やピボットテーブルを使わなくても簡単に集計できます。
Power Queryでグループ化を行う手順は次の通りです。
Power Queryのグループ化では、さまざまな集計を自動で実行できます。代表的なものを以下に紹介します。
| 集計方法 | 説明 | 使用例 |
|---|---|---|
| 合計 | 数値の合計を求める | 売上金額の合計 |
| 平均 | 数値の平均値を求める | 単価や在庫の平均 |
| 件数 | 行数をカウントする | 注文数や件数の集計 |
| 最小値 | 最も小さい値を取得 | 最安値、最短時間 |
| 最大値 | 最も大きい値を取得 | 最高売上、最長期間 |
| すべての行 | グループ化されたすべての行をテーブルとして保持 | 明細を残して詳細分析する場合に便利 |
特に「すべての行」は応用範囲が広く、後述するように複数の集計を一度に行う際などに役立ちます。
たとえば、「部署ごとに売上合計と平均単価の両方を表示したい」場合は、グループ化設定画面で「操作を追加」をクリックします。
結果は以下のようになります。
| 部署 | 売上合計 | 平均売上 |
|---|---|---|
| 営業 | 220000 | 110000 |
| 開発 | 175000 | 87500 |
このように複数の集計を同時に設定することで、効率的な分析が可能になります。
単純な集計ではなく、「部署ごとにどの社員がいるかも確認したい」といった場合には、「すべての行」を使います。
グループ化の設定で「新しい列名:詳細」「操作:すべての行」を選ぶと、各グループの中に元データのテーブルが保持されます。
その後、「詳細」列の右端にある展開アイコン(⮟)をクリックすることで、必要な情報だけを再展開できます。
これは「サブテーブル」を作るようなイメージで、グループごとの詳細を後から柔軟に扱える便利なテクニックです。
日報データを「日付」列でグループ化し、「件数」をカウントすると、日別の報告数をすぐに集計できます。
顧客IDでグループ化して「金額の合計」を取ることで、顧客ごとの売上を簡単に算出できます。
「商品カテゴリ」列を基準にして「単価の平均」を出すことで、カテゴリーごとの平均価格を分析できます。
チームでグループ化し、「すべての行」を保持した上で、各チーム内でスコア順に並べ替えるなど、柔軟な分析も可能です。
Table.Group関数を直接記述してより細かい制御ができます。Power Queryの内部では、グループ化は Table.Group 関数で処理されています。
以下は基本構文の例です。
Table.Group(
ソーステーブル,
{"部署"},
{
{"売上合計", each List.Sum([売上金額]), type number},
{"平均売上", each List.Average([売上金額]), type number}
}
)
上記のように、Mコードを直接操作することで、GUIではできないような柔軟な集計も可能になります。
| 比較項目 | Power Queryのグループ化 | ピボットテーブル |
|---|---|---|
| 主な目的 | データ変換・前処理 | データ分析・表示 |
| 集計の更新 | 自動更新可能 | 手動で更新が必要 |
| 処理対象 | 複数ソース・クレンジング向け | 単一データ範囲向け |
| 柔軟性 | 高い(結合・変換可) | 見やすさ重視 |
グループ化は「分析前のデータ整形」に最適であり、ピボットテーブルと併用するとさらに効果的です。
Power Queryの「グループ化」は、Excel作業を自動化・効率化するうえで欠かせない機能です。
一度グループ化の仕組みを理解すれば、次回以降の集計もワンクリックで完了します。
毎日のExcel業務をよりスマートにするために、ぜひPower Queryのグループ化機能を活用してみてください。