複数の統計関数や集計関数を柔軟に使い分け、エラー値や非表示セルを無視しながら集計したいときに便利なのが AGGREGATE(アグリゲート)関数 です。
この記事では、AGGREGATE関数の基本的な書式、使い方、実務で役立つ具体例を紹介します。
AGGREGATE関数とは?
AGGREGATE関数は、平均・合計・最大値・最小値・標準偏差などの統計処理を、オプション設定付きで柔軟に行える関数です。
書式
=AGGREGATE(関数番号, オプション, 範囲1, [範囲2], …)
引数の意味
- 関数番号:使用する集計関数を指定(下表参照)
- オプション:集計時に無視する内容を指定(例:エラー値、非表示セルなど)
- 範囲:集計対象のセル範囲
AGGREGATE関数の関数番号一覧
| 関数番号 | 関数名 | 説明 |
|---|---|---|
| 1 | AVERAGE | 平均値を返す |
| 2 | COUNT | 数値が入力されているセルの個数を返す |
| 3 | COUNTA | 空白でないセルの個数を返す |
| 4 | MAX | 最大値を返す |
| 5 | MIN | 最小値を返す |
| 6 | PRODUCT | 積(掛け算の結果)を返す |
| 7 | STDEV.S | 標本標準偏差を返す(STDEV関数と同じ) |
| 8 | STDEV.P | 母集団標準偏差を返す(STDEVP関数と同じ) |
| 9 | SUM | 合計値を返す |
| 10 | VAR.S | 標本分散を返す(VAR関数と同じ) |
| 11 | VAR.P | 母集団分散を返す(VARP関数と同じ) |
| 12 | MEDIAN | 中央値を返す |
| 13 | MODE.SNGL | 最頻値(1つ)を返す |
| 14 | LARGE | n番目に大きい値を返す(nは第4引数) |
| 15 | SMALL | n番目に小さい値を返す(nは第4引数) |
| 16 | PERCENTILE.INC | 百分位数(0〜100%)を返す |
| 17 | QUARTILE.INC | 四分位数を返す(0〜4で指定) |
| 18 | PERCENTILE.EXC | 百分位数(0〜100%未満)を返す(Excel 2010以降) |
| 19 | QUARTILE.EXC | 四分位数を返す(Excel 2010以降) |
オプション一覧
| オプション値 | 動作 |
| 0 または省略 | ネストされた SUBTOTAL 関数と AGGREGATE 関数を無視 |
| 1 | 非表示の行、ネストされた SUBTOTAL 関数と AGGREGATE 関数を無視 |
| 2 | エラー値、ネストされた SUBTOTAL 関数と AGGREGATE 関数を無視 |
| 3 | 非表示の行、エラー値、ネストされた SUBTOTAL 関数と AGGREGATE 関数を無視 |
| 4 | なし(すべて含める) |
| 5 | 非表示の行を無視 |
| 6 | エラー値を無視 |
| 7 | 非表示の行とエラー値を無視 |
基本的な使い方
例1:非表示セルとエラー値を無視して平均を出す
=AGGREGATE(1, 3, A1:A10)
→ A1:A10の中で非表示かエラーになっているセルを除いた平均値を返す
例2:5番目に大きい値を取得(非表示無視)
=AGGREGATE(14, 1, A1:A10, 5)
→ LARGE関数のように使える(第4引数が順位)
実務での活用例
1. フィルター後の合計値計算
=AGGREGATE(9, 5, B2:B100)
→ フィルターで非表示の行を除いて合計
2. エラーを含むデータの中から最小値を取得
=AGGREGATE(5, 2, C2:C50)
→ #DIV/0!などのエラーを無視
3. 順位表示やn番目のデータ取得
=AGGREGATE(15, 0, D2:D20, 3)
→ 3番目に小さい値(SMALL)を取得
注意点
- AGGREGATEは縦方向での計算に強く、横方向には非対応
- オプション値によって無視される内容が大きく変わるので注意
- 関数番号やオプションの入力ミスによる計算エラーに注意
関連関数
| 関数 | 内容 |
| SUBTOTAL関数 | フィルターや非表示セルの集計に強い |
| IFERROR関数 | エラー処理と組み合わせて使える |
| LARGE関数/SMALL関数 | 特定順位の値を取得できる |
| AVERAGE関数/COUNT関数/SUM関数 | 一般的な集計関数 |
まとめ
AGGREGATE関数は、集計しながら特定条件のデータを無視できる柔軟な関数です。フィルター付きデータやエラー混在のリストなど、実務でも非常に役立ちます。
同様にフィルターされたデータを対象に集計できる SUBTOTAL関数 もあり、こちらは指定した集計番号によって合計や平均、最大・最小値などを計算しながら、フィルターで非表示になった行や手動で非表示にした行を除外するかどうかを選択できます。
両者を使い分けることで、データの状態に応じた集計が可能となり、より効率的な分析が実現できます。
関連記事:SUBTOTAL関数の使い方
