Excelの集計作業は、データ分析において非常に重要です。しかし、従来のピボットテーブルやSUMIFS関数では、集計条件を変更するたびに再設定が必要でした。この手間を解消し、より柔軟で動的な集計表を生成できるのが、Microsoft 365で利用可能になったGROUPBY関数とPIVOTBY関数です。この記事では、これらの最新集計関数の使い方と、具体的な活用方法を解説します。
GROUPBY関数とPIVOTBY関数を使いこなすことで、集計表の作成・更新作業が劇的に効率化されます。データ分析のスピードと精度を向上させたい方は、ぜひ参考にしてください。
ADVERTISEMENT
目次
GROUPBY関数とPIVOTBY関数の概要
GROUPBY関数とPIVOTBY関数は、Excel for Microsoft 365の最新バージョンで導入された、動的な集計を行うための関数です。これらの関数は、指定した条件に基づいてデータを集計し、その結果を配列として返します。従来のピボットテーブルのように、GUI操作で設定を変更する必要がなく、数式だけで集計条件を自在に操れる点が最大の特徴です。
GROUPBY関数は、指定した列の値をグループ化し、各グループの合計、平均、件数などを計算します。一方、PIVOTBY関数は、2つ以上の列を組み合わせてピボットテーブルのようなクロス集計表を生成します。これらの関数を理解することで、より高度なデータ分析が容易になります。
GROUPBY関数の使い方
GROUPBY関数は、指定した列でデータをグループ化し、集計値(合計、平均、件数など)を計算します。基本的な構文は以下の通りです。
GROUPBY(array, row_fields, col_fields, values, function, [total_row_mode], [total_col_mode], [filter_mode], [sort_order])
主要な引数について解説します。
array: 集計対象のデータ範囲を指定します。row_fields: グループ化の基準となる行フィールドを指定します。複数指定可能です。col_fields: グループ化の基準となる列フィールドを指定します。複数指定可能です。values: 集計対象の値が含まれる列を指定します。function: 実行する集計関数を指定します(例: “SUM”, “AVERAGE”, “COUNT”)。
具体的な使用例を見てみましょう。例えば、A1:D10の範囲に「商品名」「地域」「売上」「数量」のデータがあるとします。「商品名」でグループ化し、「売上」の合計を計算するには、以下の数式を使用します。
=GROUPBY(A1:D10, A1:A10, , D1:D10, "SUM")
この数式は、A列の各商品名ごとに、D列の売上合計を計算して返します。`col_fields`と`values`を省略し、`function`に”COUNT”を指定すれば、各行フィールドの件数を取得できます。
GROUPBY関数で複数列を集計する
GROUPBY関数では、`row_fields`や`values`に複数の列を指定することで、より複雑な集計が可能です。例えば、「商品名」と「地域」でグループ化し、「売上」と「数量」の合計を計算したい場合は、以下のように記述します。
=GROUPBY(A1:D10, {A1:A10, B1:B10}, , {D1:D10, E1:E10}, "SUM")
この数式では、`row_fields`に配列定数 `{A1:A10, B1:B10}` を指定し、`values`にも配列定数 `{D1:D10, E1:E10}` を指定しています。これにより、商品名と地域を組み合わせたグループごとに、売上と数量の合計が計算されます。
GROUPBY関数で集計関数を複数指定する
function引数に配列定数を使用することで、複数の集計関数を同時に適用できます。例えば、「商品名」ごとに「売上」の合計と平均を計算するには、以下の数式を使用します。
=GROUPBY(A1:D10, A1:A10, , D1:D10, {"SUM", "AVERAGE"})
これにより、各商品名に対して、売上合計と売上平均が隣接する列に表示されます。
PIVOTBY関数の使い方
PIVOTBY関数は、2つ以上のフィールドを使用してクロス集計表(ピボットテーブルのような形式)を生成します。GROUPBY関数よりも高度な集計が可能です。基本的な構文は以下の通りです。
PIVOTBY(array, row_fields, col_fields, values, function, [total_row_mode], [total_col_mode], [filter_mode], [sort_order])
PIVOTBY関数もGROUPBY関数と似た引数を持ちますが、`row_fields`と`col_fields`に複数のフィールドを指定することで、2次元の集計表を作成できる点が異なります。
例として、先ほどのA1:D10のデータ(「商品名」「地域」「売上」「数量」)を使用します。「商品名」を行フィールド、「地域」を列フィールドとし、「売上」の合計を表示するには、以下の数式を使用します。
=PIVOTBY(A1:D10, A1:A10, B1:B10, D1:D10, "SUM")
この数式は、「商品名」を行、「地域」を列とするクロス集計表を生成し、各セルには該当する商品名と地域の売上合計が表示されます。
PIVOTBY関数で複数集計関数を適用する
PIVOTBY関数でも、function引数に配列定数を使用することで、複数の集計関数を適用できます。例えば、「商品名」を行、「地域」を列とし、「売上」の合計と「数量」の平均を表示するには、以下の数式を使用します。
=PIVOTBY(A1:D10, A1:A10, B1:B10, {D1:D10, E1:E10}, {"SUM", "AVERAGE"})
この場合、`values`に売上と数量の列を指定し、`function`に”SUM”と”AVERAGE”を指定します。結果として、各商品名と地域の組み合わせに対して、売上合計と数量平均が表示されるクロス集計表が生成されます。
PIVOTBY関数でデータフィルターを適用する
PIVOTBY関数では、`filter_mode`引数を使用して、特定の条件を満たすデータのみを集計対象とすることができます。例えば、「地域」が「東京」であるデータのみを対象に集計するには、`filter_mode`に条件を指定します。
=PIVOTBY(A1:D10, A1:A10, B1:B10, D1:D10, "SUM", , , B1:B10="東京")
この例では、`filter_mode`に `B1:B10=”東京”` を指定しています。これにより、地域が「東京」であるデータのみが集計対象となります。
ADVERTISEMENT
GROUPBY関数とPIVOTBY関数の比較
GROUPBY関数とPIVOTBY関数は、どちらも動的な集計を可能にしますが、その用途と機能には違いがあります。
| 項目 | GROUPBY関数 | PIVOTBY関数 |
|---|---|---|
| 主な用途 | 1次元のリスト形式での集計 | 2次元のクロス集計表(ピボットテーブル形式)の生成 |
| 集計軸 | 行フィールドまたは列フィールドのいずれか一方に主眼 | 行フィールドと列フィールドの両方を指定可能 |
| 複雑な集計 | 複数フィールドによるグループ化は可能だが、2次元表の生成には不向き | 複数フィールドによるクロス集計、フィルター適用に優れる |
| 出力形式 | 指定したフィールドでグループ化されたリスト | 行と列で構成される表形式 |
GROUPBY関数は、単一のカテゴリごとの集計や、複数のカテゴリを列挙するリスト形式の集計に適しています。一方、PIVOTBY関数は、Excelのピボットテーブルのように、行と列の組み合わせでデータを多角的に分析したい場合に強力な機能を発揮します。
GROUPBY・PIVOTBY関数でよくある質問と対処法
Q1: 関数を入力してもエラーが表示される
原因と対処法:
- Excelのバージョンが古い: GROUPBY関数とPIVOTBY関数はMicrosoft 365の最新バージョンで利用可能です。Excelのバージョンを確認し、必要であればアップデートしてください。
- 引数の指定ミス: 関数の構文や引数のデータ型が間違っている可能性があります。各引数(特に配列、フィールド、関数)が正しく指定されているか、ヘルプを参照しながら確認してください。
- データ範囲の重複: `array`、`row_fields`、`col_fields`、`values`などの範囲が重複している場合、意図しない結果やエラーを引き起こすことがあります。各範囲が独立しているか確認してください。
Q2: 集計結果が意図した通りにならない
原因と対処法:
- フィールドの指定誤り: `row_fields`や`col_fields`に指定した列が、実際にグループ化したい項目と一致しているか確認してください。
- 集計関数(function)の指定誤り: “SUM”, “AVERAGE”, “COUNT”などの集計関数名が正しく記述されているか確認してください。大文字・小文字は区別されません。
- フィルター条件の誤り: `filter_mode`を使用している場合、条件式が正しく記述されているか確認してください。例えば、`B1:B10=”東京”`のように、比較対象と値が明確に指定されている必要があります。
- データ形式の問題: 集計対象の数値データが文字列として認識されている場合、SUMやAVERAGE関数が正しく機能しないことがあります。セルの書式設定を確認し、必要であれば数値形式に変換してください。
Q3: total_row_modeやtotal_col_modeが機能しない
原因と対処法:
- 引数の順序: `total_row_mode`や`total_col_mode`は、`filter_mode`よりも前の引数に指定する必要があります。これらの引数を省略する場合でも、カンマ(,)でプレースホルダーを空けておく必要があります。
- Excelのバージョン: これらのモードは比較的新しい機能のため、古いバージョンではサポートされていない可能性があります。Microsoft 365の最新バージョンを使用しているか確認してください。
まとめ
GROUPBY関数とPIVOTBY関数は、Excelでのデータ集計作業を劇的に効率化する強力なツールです。これらの関数を活用することで、数式だけで動的な集計表を生成し、データ分析のスピードと柔軟性を向上させることができます。従来のピボットテーブルでは難しかった、数式ベースでの集計条件の変更も容易になります。
まずは簡単なデータでGROUPBY関数とPIVOTBY関数の基本的な使い方を試し、徐々に複雑な集計に挑戦してみてください。これらの最新関数を使いこなすことで、Excelを使ったデータ分析の可能性が大きく広がります。
ADVERTISEMENT
超解決 Excel・Word研究班
企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。
Office・仕事術の人気記事ランキング
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Outlook】宛先が「オートコンプリート」に出ない・間違っている時の修正手順|履歴の削除と再構築
- 【Excel】矢印キーで「セルが動かず画面がスクロールする」!ScrollLockの解除方法(ノートPC対応)
- 【Outlook】メールの受信が数分遅れる!リアルタイムで届かない時の同期設定と送受信グループ設定
- 【Outlook】予定表の「祝日」が表示されない!最新カレンダーの追加と二重表示の修正手順
- 【Outlook】「メール送信を5分遅らせる」設定!誤送信を防ぐ最強のディレイ機能
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Excel】文字がセルの枠からはみ出す・隠れる!「折り返して表示」と「縮小して全体を表示」の使い分け
