クイックナビゲーション
GROUPBY関数
概要
GROUPBY関数は、数式だけでデータをグループ化し、集計結果を動的に生成する強力な関数です。ピボットテーブルのような集計をコード不要で実現でき、条件フィルタリングや複数レベル集計、柔軟な並べ替えも可能です。
構文
GROUPBY(row_fields, values, function, [field_headers], [total_depth], [sort_order], [filter_array], [field_relationship])
パラメータ
| パラメータ | タイプ | 必須 | 説明 |
|---|---|---|---|
| row_fields | 配列/範囲 |
はい | グループ化に使用する行フィールドの列指向配列。複数列指定で多階層グループ化可能。 |
| values | 配列/範囲 |
はい | 集計対象となる数値データの列指向配列。複数列で複数集計。 |
| function | 関数/ラムダ |
はい | 集計方法(SUM、AVERAGE、COUNT、PERCENTOFなど)。ベクター指定で複数集計。 |
| field_headers | 数値 |
いいえ | ヘッダー表示制御(0:なし、1:あり非表示、2:なし生成、3:あり表示)。省略時は自動。 |
| total_depth | 数値 |
いいえ | 合計表示制御(0:なし、1:総計、2:総計+小計)。省略時は自動。 |
| sort_order | 数値/ベクター |
いいえ | 並べ替え順序。正:昇順、負:降順。row_fields列に対応。 |
| filter_array | ブール配列 |
いいえ | 集計対象行を絞り込むTRUE/FALSEの1次元配列。 |
| field_relationship | 数値 |
いいえ | 複数列関係性(0:階層、1:テーブル)。省略時は階層。 |
GROUPBY関数の使用
GROUPBYはピボットテーブル並みの集計を数式1つで実現します。データ範囲を指定するだけで自動的にグループ化・集計され、フィルタや並べ替えも柔軟に対応。ダッシュボード作成やレポート自動化に最適です。
GROUPBYの一般的な例
年間売上集計
=GROUPBY(A2:A76,D2:D76,SUM)
A列の日付とD列の売上データを年単位で集計し、年間合計を表示。ヘッダー自動生成。
製品別売上(降順)
=GROUPBY(C2:C76,D2:D76,SUM( ), ,-2)
C列の製品別D列売上を集計し、売上降順で並べ替え。小計も自動表示。
複数集計(平均・件数)
=GROUPBY(B2:B100,C2:C100,{AVERAGE,COUNT})
B列のカテゴリ別、C列の売上について平均値と件数を同時集計。
条件フィルタ付き
=GROUPBY(A2:A100,B2:B100,SUM, , , ,E2:E100>1000)
売上1000超のデータのみを対象に月別集計。
よくある質問
GROUPBYは数式ベースでピボットテーブルより高速・柔軟。セル参照で動的更新され、VBA不要で集計可能。
SUM、AVERAGE以外の独自集計を作成可能。LAMBDA関数と組み合わせることで高度な集計を実現。
field_headers引数で制御(1:ヘッダーあり非表示、3:ヘッダーあり表示)。データ形式も確認。
一般的なエラーと解決策
#SPILL! エラー
Cause: 出力範囲が占有されている
Solution: 出力先を空の範囲に配置し直す
#VALUE! エラー
Cause: row_fieldsとvaluesの行数が一致しない
Solution: データ範囲の行数を統一する
集計結果が0のみ
Cause: filter_arrayで全行が除外されている
Solution: フィルター条件とデータ内容を確認
注記
- Excel 365限定機能
- 動的配列関数群の一部
- ピボットテーブルの数式版
- 複数階層グループ化対応(最大6レベル)
- SEO最適化レポート作成に最適
互換性
利用可能: Excel 365, Microsoft 365
利用不可: Excel 2021, Excel 2019, Excel 2016, Excel 2013, Excel 2010, Excel 2007, Excel 2003
コンテンツ最終レビュー: December 9, 2025
更新頻度: 必要に応じて
テスト済みExcelバージョン: Excel 365