GROUPBY関数 – 行ごとにグループ化して集計や並べ替えを行う新しい関数
1. 使い方と活用例
GROUPBY関数は、Microsoft 365で導入された新しい関数で、行単位でグループ化しながら、指定された列に対して合計、平均、件数などの集計処理を行うことができます。
ピボットテーブルのような集計を関数として直接セル上で実現できるため、動的で柔軟な集計処理が可能です。
2. 基本の書式
=GROUPBY(row_fields, values, function, [field_headers], [total_depth], [sort_order], [filter_array], [field_relationship])
3. 引数の説明
- row_fields – グループ化に使う行フィールド(列の配列や範囲)
- values – 集計対象の数値列または範囲
- function – 集計に使用する関数(SUM、AVERAGE、LAMBDAなど)
- field_headers(省略可能)– ヘッダーの有無を示す数値(0または1)
- total_depth(省略可能)– 合計行の有無を示す数値
- sort_order(省略可能)– 並べ替え順を指定する数値
- filter_array(省略可能)– 集計対象行を絞り込むブール値の配列
- field_relationship(省略可能)– 複数のrow_fieldsに対するリレーション指定
4. 使用シーン
- 複数のカテゴリに対して合計や平均などの集計を自動で行いたいとき
- ピボットテーブルの代替として、スピル関数で軽量な集計処理をしたいとき
- 年度や部門別の売上・人数などを関数でシンプルに集計したいとき
5. 応用のポイント
GROUPBY関数は、LAMBDA関数やBYCOL、BYROWと組み合わせることで、
高度なカスタム集計や複雑な処理を関数内で完結させることができます。
また、field_headers
を1にすれば、出力にも見出しを含めることができ、他のスピル関数と組み合わせた表形式の出力にも便利です。
6. 具体例とその解説
=GROUPBY(A2:A5, C2:C5, SUM)
この式では、A2:A5の「年」列をもとにグループ化し、C2:C5の「売上」列を合計します。
年ごとの売上合計が動的にスピル出力されます。
=GROUPBY(A2:A5, C2:C5, LAMBDA(x, AVERAGE(x)), 1)
この式では、LAMBDAを使って「売上」の平均をグループごとに計算し、ヘッダーを含めた出力(field_headers=1)を行います。
7. 関連関数の紹介
- BYROW関数 – 行単位で処理を行う動的配列関数
- BYCOL関数 – 列単位で処理を行う動的配列関数
- REDUCE関数 – 値の集約処理に使える高機能関数
- LAMBDA関数 – 独自の関数を定義して関数内に組み込める柔軟な関数
- UNIQUE関数 – 一意な値を抽出してGROUPBYの前処理に活用できる関数
8. まとめ
GROUPBY関数は、ピボットテーブルのような集計処理を関数ベースで動的に行える新しい関数です。
従来の手作業によるグループ化や集計処理を効率化でき、LAMBDA関数などと組み合わせることで非常に柔軟な分析が可能になります。
Microsoft 365で提供されている最新機能を活かし、スプレッドシートをより自動化・高機能化したい場面で特に役立ちます。
9. 対応バージョン
GROUPBY関数は、Microsoft 365 専用関数です。
Excel 2021以前のバージョンでは使用できません。最新のMicrosoft 365サブスクリプションが必要です。