GROUPBY関数

Excel 365

概要

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