Excel(エクセル)のAGGREGATE関数の使い方|SUBTOTALを拡張した集計関数
使用関数:AGGREGATE
AGGREGATE(アグリゲート)関数とは?
AGGREGATEは「集計・合計」を意味する英語です。Excel2010から装備された関数で、降順・昇順の順位や中央値を求めたり、エラー値のセルを除外した集計もできます。
AGGREGATE関数とSUBTOTAL関数の違い
簡単に言えば、SUBTOTALは進化前で、AGGREGATEは進化後です。AGGREGATE関数はSUBTOTALの集計方法を拡張し、より柔軟な指定を可能にしました。
両者とも「集計方法」を対応する関数ごとに決まった番号で指定しますが、AGGREGATEは対応する関数が8種類増えています。
また、SUBTOTALでは非表示にした行データを除外して集計するのに3桁の番号を指定する必要がありましたが、AGGREGATEでは集計で除外する条件を引数オプションに0~7までの数字で指定する仕様に変わりました。このオプションには非表示・エラー値・小計の除外に関する様々な選択肢が含まれます。
SUBTOTAL関数の詳しい使い方です。
AGGREGATE関数の引数と書式
「数式」タブ「関数ライブラリ」の「数学/三角」からAGGREGATEをクリックします。
AGGREGATEのダイアログを開く際に2タイプの書式を選択する画面が現れます。
最初の書式の引数は「集計方法」「オプション」「配列」「順位」で、これはAGGREGATE関数で新たに加わった集計方法の内、14~19を対象にした書式です。
2番目の書式の引数は「集計方法」「オプション」「参照1」が必須で、「参照2」以下は任意です。これは1~13までの集計方法を対象にした書式です。
書式の構成はこうなります。
第一引数「集計方法」の指定
最初の引数の「集計方法」には以下に掲載した計算する種類番号で指定します。12~19はAGGREGATE関数で新たに加わった集計方法です。
集計の種類番号リスト
番号 | 集計方法 | 対応する関数 |
---|---|---|
▼ 引数「集計方法・オプション・参照1・参照2・・・」を選択 | ||
1 | 平均値 | AVERAGE |
2 | 数値が入ったセルの個数 | COUNT |
3 | データが入ったセルの個数 | COUNTA |
4 | 最大値 | MAX |
5 | 最小値 | MIN |
6 | 全ての数値の積 | PRODUCT |
7 | 不偏標準偏差 | STDEV.S |
8 | 標本標準偏差 | STDEV.P |
9 | 合計 | SUM |
10 | 不偏分散 | VAR.S |
11 | 標本分散 | VAR.P |
12 | 中央値 | MEDIAN |
13 | 最頻値 | MODE.SNGL |
▼ 引数「集計方法・オプション・配列・順位」を選択 | ||
14 | 降順の順位 | LARGE |
15 | 昇順の順位 | SMALL |
16 | 百分位数 | PERCENTILE.INC |
17 | 四分位数 | QUARTILE.INC |
18 | 0%と100%を除く百分位数 | PERCENTILE.EXC |
19 | 0%と100%を除く四分位数 | QUARTILE.EXC |
第二引数「オプション」の指定で非表示の行やエラー値の除外
AGGREGATE関数の引数「オプション」には以下に掲載した種類番号で除外する条件を指定します。
AGGREGATEの計算から除外する条件の種類番号リスト
番号 | 除外する条件 |
---|---|
0または省略 | ネストされたSUBTOTAL関数とAGGREGATE関数を無視する |
1 | オプション番号「0」の条件に加えて非表示の行を無視する |
2 | オプション番号「0」の条件に加えてエラー値を無視する |
3 | オプション番号「0」の条件に加えて非表示の行とエラー値を無視する |
4 | 何も無視しない |
5 | 非表示の行を無視する |
6 | エラー値を無視する |
7 | 非表示の行とエラー値を無視する |
第三引数「配列」または「参照1」の指定
どちらも集計するデータ範囲を指定します。
「集計方法」の1~13に指定する「参照1」にはセル及びセル範囲を「参照253」まで指定できます。
「集計方法」の14~19に指定する「配列」には連続するセル範囲を指定します。配列形式で直接値を入力することもできます。
第四引数「順位」の指定
「集計方法」で14~19を指定した場合、この引数「順位」は省略できません。降順・昇順における順位、百分位数の率、四分位数の戻り値(0~4までの数字)を数値で指定します。
例えば、降順で大きい方から3番目の値を求めたいなら「3」、百分位数で小さい方から10%の位置にある値を求めたいなら「0.1」と入力します。
AGGREGATE関数の使い方|集計方法1~13までの書式
集計方法「1」から「13」までは引数「集計方法・オプション・参照1・参照2・・・」の書式を選択して計算します。
この中で「最大値」と「最小値」を求める集計をしてみましょう。
会員名簿のデータ表です。会員資格をクリアしていない数名の行が非表示になっており、入力ミスによるエラー値もあります。この中から「最年長」と「最年少」の会員の年齢をAGGREGATE関数で取得してみます。
- 「集計方法」には最大値を求める「4」を指定します。
- 「オプション」には非表示の行とエラー値を無視する「7」を指定します。
- 「参照1」には「年齢」配下のデータ範囲を指定します。
ダイアログでの指定は以下のようになります。
「最年長」の数式を「最年少」のセルにコピーして、「集計方法」の数値を最大値を求める「4」から最小値を求める「5」に修正します。
「最年長」と「最年少」の年齢が取得できました。
最年長の数式: =AGGREGATE(4,7,$D$2:$D$21)
最年少の数式: =AGGREGATE(5,7,$D$2:$D$21)
AGGREGATE関数の使い方|集計方法14~19までの書式
集計方法「14」から「19」までは引数「集計方法・オプション・配列・順位」の書式を選択して計算します。
この中から「降順の順位」を求める集計をしてみましょう。
ランダムに並べた成績表があり、これを点数の高い順に並べ替えます。欠席者の行が非表示になっており、「氏名」の欄には点数が並べ替えられたら氏名も自動で表示されるように「=IFERROR(VLOOKUP(E2,$A$2:$B$16,2,0),””)」の数式が入っています。
- 「集計方法」には降順の順位を求める「14」を指定します。
- 「オプション」には非表示の行を無視する「5」を指定します。
- 「配列」には「総合点」配下のデータ範囲を指定します。
- 「順位」には「1」をセル参照で指定します。
ダイアログでの指定は以下のようになります。
この数式を下までオートフィルコピーして完了です。成績順位で表が並べ替えられました。
数式: =AGGREGATE(14,5,$A$2:$A$16,D2)
- AGGREGATE関数は様々な種類の集計方法(合計・平均・分散・個数・標準偏差・最大値と最小値・降順の順位・百分位数など)を実行できる便利な関数です
- AGGREGATEはSUBTOTAL関数を拡張した機能を持つ関数で、Excel2010から数学/三角のライブラリに組み込まれました
- AGGREGATE関数はオプションの指定によって小計・エラー値・非表示データを除外して集計できます
- 引数「集計方法」には対応する1~19の番号で指定します
- 集計方法の番号(1~13)は引数「集計方法・オプション・参照1・参照2・・・」の書式で実装します
- 集計方法の番号(14~19)は引数「集計方法・オプション・配列・順位」の書式で実装します