AGGREGATE関数の使い方|エラーを無視して合計・平均・最大・条件付きの最大を出す【実機で解説】

AGGREGATE関数の使い方|エラーを無視して合計・平均・最大・条件付きの最大を出す【実機で解説】

AGGREGATE 関数は、合計・平均・最大などを、エラーや非表示の行を無視して計算できる関数です。表に #DIV/0! や #N/A が 1 つでもあると、SUM や AVERAGE はエラーになりますが、=AGGREGATE(9,6,B2:B7) と書くとエラーを飛ばして合計できます。

この記事では、AGGREGATE の番号の選び方と、エラーを無視した集計・順位・条件付きの最大の出し方を、実際の Excel で確かめた結果で説明します。

練習用Excelファイル(無料ダウンロード)
エラーがまざった売上の表と、この記事の AGGREGATE の式をまとめた練習ファイルです。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り
目次

AGGREGATE 関数の書き方

=AGGREGATE(集計方法, オプション, 範囲, [順位])
引数意味
集計方法1=平均、2=数値の個数、4=最大、5=最小、9=合計、14=大きいほうから○番目、15=小さいほうから○番目 など
オプション6=エラーを無視、5=非表示の行を無視、7=両方を無視、4=何も無視しない
範囲集計する範囲
順位(14・15 のとき)何番目か

よく使うのは オプション 6(エラーを無視)です。集計方法の番号は 1〜19 まであり、式を入力するときに一覧が出るので、そこから選べます。

1. エラーを無視して合計する

B3 は #DIV/0!、B5 は #N/A です。集計方法 9(合計)、オプション 6(エラーを無視)で合計します。

=AGGREGATE(9,6,B2:B7)
エクセルのAGGREGATE関数でエラーがまざった売上をエラーを無視して合計した画面
エクセルのAGGREGATE関数でエラーがまざった売上をエラーを無視して合計した画面

結果は 4,100 でした(1,200+800+1,500+600)。同じ範囲を SUM で合計すると #DIV/0! になります(下の検証)。

2. エラーを無視して平均する

集計方法を 1(平均)にします。

=AGGREGATE(1,6,B2:B7)
エクセルのAGGREGATE関数の集計方法を1にしてエラーを無視して平均した画面
エクセルのAGGREGATE関数の集計方法を1にしてエラーを無視して平均した画面

結果は 1,025 で、エラーの 2 つを除いた 4 店の平均です。

3. 2 番目に大きい値を出す

集計方法 14 は LARGE と同じで、4 つ目に順位を入れます。

=AGGREGATE(14,6,B2:B7,2)
エクセルのAGGREGATE関数の集計方法14でエラーを無視して2番目に大きい値を出した画面
エクセルのAGGREGATE関数の集計方法14でエラーを無視して2番目に大きい値を出した画面

結果は 1,200 でした。LARGE 関数ではエラーがあると #DIV/0! になりますが、AGGREGATE なら計算できます。

4. 条件に合う中での最大(1,000 未満で最大)

集計方法 14・15 は、範囲のところに計算式を書けます。B2:B7/(B2:B7<1000) は、条件に合わない行が 0 で割ってエラーになるので、オプション 6 でそれを無視すると「条件に合う中での最大」になります。

=AGGREGATE(14,6,B2:B7/(B2:B7<1000),1)
エクセルのAGGREGATE関数で条件に合わない行をエラーにして1000未満の中での最大を出した画面
エクセルのAGGREGATE関数で条件に合わない行をエラーにして1000未満の中での最大を出した画面

結果は 800 でした(1,000 未満は 800 と 600)。MAXIFS が使えない古い Excel でも、この形なら条件付きの最大が出せます。

【実機で検証】AGGREGATE でつまずくところ

エクセルのAGGREGATE関数とSUMの違いやオプションや非表示の行を確かめた画面
エクセルのAGGREGATE関数とSUMの違いやオプションや非表示の行を確かめた画面
ためしたこと式結果
SUM でそのまま合計=SUM(AGGREGATE!B2:B7)#DIV/0!
AGGREGATE(9,6)で合計=AGGREGATE(9,6,AGGREGATE!B2:B7)4,100
オプション 4(何も無視しない)=AGGREGATE(9,4,AGGREGATE!B2:B7)#DIV/0!
非表示の 14 行目がある A12:A15 を SUM=SUM(A12:A15)100
A12:A15 を AGGREGATE(9,5)=AGGREGATE(9,5,A12:A15)70
合計(9)の範囲に計算式を書くと=AGGREGATE(9,6,AGGREGATE!B2:B7*1)#VALUE!

エラーがまざった範囲を SUM で合計すると #DIV/0! になりました。AGGREGATE(9,6)なら 4,100 です。オプションを 4(何も無視しない)にすると #DIV/0! になるので、エラーを無視するなら 6 を選びます。

14 行目(30)を非表示にした A12:A15 は、SUM だと 100、AGGREGATE のオプション 5(非表示の行を無視)だと 70 でした。

合計(9)や平均(1)の範囲に計算式を書くと #VALUE! になりました。範囲に計算式を書けるのは、集計方法 14〜19(LARGE・SMALL など)だけです。

よくある質問

SUBTOTAL とのちがいは?

SUBTOTAL も非表示の行を無視できますが、エラーは無視できません。エラーをよけたいときは AGGREGATE を使います。SUBTOTAL は SUBTOTAL関数の使い方で説明しています。

IFERROR と組み合わせる方法とどちらがよい?

=SUM(IFERROR(B2:B7,0)) でもエラーを 0 にして合計できます。AGGREGATE は番号を選ぶだけで、平均や順位にも同じ書き方で使えるのが便利です。

エラーそのものを直したいときは?

エラーの原因を直すのが本来の対処です。エラーの種類と直し方は エラー値の一覧と直し方で説明しています。

練習用Excelファイル(無料ダウンロード)
この記事の例をまとめた練習ファイルです。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り

あわせて読みたい:関連記事

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次