Excelで集計作業をしていると、「フィルタで非表示にした行が合計に含まれてしまう」「#N/Aエラーがあると合計が計算できない」といった問題が起きることがあります。

そんなときに役立つのがAGGREGATE(アグリゲート)関数です。AGGREGATE関数は、エラー値・非表示行・フィルタ後の行を自由に無視して集計できる高機能な集計関数です。

この記事では、AGGREGATE関数の基本から、よく使うSUBTOTAL関数との違い・集計方法コード一覧・実際の使い方まで、初心者にもわかりやすく解説します。

この記事でわかること
・AGGREGATE関数の構文と引数の意味
・SUBTOTAL関数との違い(何ができてSUBTOTALにできないか)
・集計方法コード(1〜19)とオプションコード(0〜7)の一覧
・エラー値を無視して合計・平均を計算する方法
・フィルタ後のデータだけを集計する方法
・LARGE/SMALL関数の代わりにAGGREGATEを使う応用

AGGREGATE関数とは?SUBTOTAL関数との違い

AGGREGATE関数を理解するには、まず似た関数であるSUBTOTAL関数と比較するとわかりやすいです。

機能 SUBTOTAL関数 AGGREGATE関数
フィルタで非表示の行を無視 ◎ できる ◎ できる
手動で非表示にした行を無視 ◎ できる(コード101〜111) ◎ できる(オプション1・3など)
エラー値(#N/A, #DIV/0!等)を無視 × できない ◎ できる(オプション2・3など)
使える集計の種類 11種類(合計・平均・最大値など) 19種類(LARGE・SMALL・MEDIAN等も含む)
利用可能なExcelバージョン 全バージョン Excel 2010以降

まとめると、SUBTOTAL関数で対応できない「エラー値の無視」や「LARGE/SMALL/MEDIANによる集計」が必要なときにAGGREGATE関数を使う、というのが基本的な使い分けです。

AGGREGATE関数の構文

AGGREGATE関数の書き方は以下のとおりです。

=AGGREGATE(集計方法, オプション, 範囲1, [範囲2, …])

  • 集計方法:1〜19の数字で集計の種類を指定(例:9なら合計)
  • オプション:0〜7の数字で無視したいデータを指定(例:2ならエラー値を無視)
  • 範囲1:集計対象のセル範囲
「集計方法」と「オプション」を組み合わせることで、柔軟な集計が可能になります。まず「何を計算したいか(集計方法)」を決め、次に「何を無視するか(オプション)」を選ぶ、という順番で考えると迷いません。

集計方法コード一覧(1〜19)

集計方法の番号と対応する集計の種類の一覧です。

コード 集計方法 説明
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 k番目に大きい値
15 SMALL k番目に小さい値
16 PERCENTILE.INC 百分位数(境界含む)
17 QUARTILE.INC 四分位数(境界含む)
18 PERCENTILE.EXC 百分位数(境界除く)
19 QUARTILE.EXC 四分位数(境界除く)

コード12〜19は通常のSUBTOTAL関数では使えないため、AGGREGATE関数ならではの機能です。特に14(LARGE)・15(SMALL)・12(MEDIAN)は実務でよく使います。

オプションコード一覧(0〜7)

コード 無視する対象
0 何も無視しない(通常の集計と同じ)
1 手動で非表示にした行を無視
2 エラー値を無視
3 手動で非表示にした行とエラー値を無視
4 フィルタで非表示の行を無視
5 フィルタで非表示の行とエラー値を無視
6 手動で非表示にした行・フィルタで非表示の行を無視(エラーは含む)
7 手動で非表示の行・フィルタで非表示の行・エラー値を無視(最も厳格)
⚠️ 「手動で非表示にした行」と「フィルタで非表示にした行」は別物です。行を右クリックして「非表示」にした行はコード1・3・6・7で無視されます。オートフィルタで絞り込んだ行はコード4・5・6・7で無視されます。どちらも無視したい場合はコード6か7を使います。

よく使うパターン①:エラー値を無視して合計する

データにエラー(#N/A・#DIV/0!・#VALUE!など)が混在していると、SUM関数もSUBTOTAL関数もエラーを返してしまいます。AGGREGATE関数ならオプション「2」を指定するだけでエラーを無視して集計できます。

例:B2:B6の範囲にエラーが含まれていても合計したい

=AGGREGATE(9, 2, B2:B6)

  • 9 = SUM(合計)
  • 2 = エラー値を無視

エラーセルをスキップして、数値のセルだけを合計します。

平均を出したい場合:

=AGGREGATE(1, 2, B2:B6)

エラーを無視した残りのデータの平均が計算されます。

よく使うパターン②:フィルタ後のデータだけを集計する

オートフィルタで特定の行を絞り込んだ後、表示されているデータだけを集計したい場合はオプション「4」を使います。

例:フィルタ後に表示されているB列の合計を出す

=AGGREGATE(9, 4, B2:B100)

フィルタで非表示になっている行は無視され、見えている行だけが合計されます。

フィルタ後の集計はSUBTOTAL関数でも可能ですが、エラー値が混在している場合はAGGREGATEのオプション「5」が便利です。
=AGGREGATE(9, 5, B2:B100)(フィルタで非表示の行とエラー値を両方無視)

よく使うパターン③:LARGE/SMALLをエラー無視で使う

LARGE関数は「k番目に大きい値」を返す関数ですが、エラー値があるとエラーになってしまいます。AGGREGATE関数の集計方法「14」(LARGE相当)を使えば、エラーを無視してk番目の値を取得できます。

例:B2:B10のうちエラーを除いて2番目に大きい値を取得

=AGGREGATE(14, 2, B2:B10, 2)

  • 14 = LARGE(k番目に大きい値)
  • 2 = エラー値を無視
  • 最後の「2」 = 2番目(k の値)

同様にSMALL(k番目に小さい値)の場合:

=AGGREGATE(15, 2, B2:B10, 1)

エラーを無視して最小値(1番目に小さい値)を取得します。MIN関数の代わりに使えます。

💡 LARGE/SMALLのk引数は第4引数として渡します。通常の集計(SUMやAVERAGEなど)は第3引数が範囲ですが、LARGE/SMALLの場合は第3引数が範囲、第4引数がkになります。ここを間違えるとエラーになるので注意してください。

よくあるエラーと対処法

#VALUE! エラーが出る場合

集計方法コードまたはオプションコードが正しくない場合に発生します。コードが1〜19(集計方法)・0〜7(オプション)の範囲内に収まっているか確認してください。

エラーが無視されない場合

オプションコードが「0」(何も無視しない)のままになっている可能性があります。エラーを無視したい場合はオプションを「2」(エラーのみ無視)または「3」(非表示+エラー無視)に変更してください。

フィルタしても結果が変わらない場合

オプションコードが「4」以上になっているか確認してください。「0」〜「3」はフィルタ後の非表示行を無視しません。フィルタ後の集計にはオプション「4」〜「7」が必要です。

LARGE/SMALLでエラーになる場合

集計方法「14」(LARGE)または「15」(SMALL)を使う場合、第4引数(k)を忘れると#VALUE!エラーになります。必ず第4引数にk(何番目か)を指定してください。

まとめ:AGGREGATE関数の使い分け

やりたいこと 集計方法 オプション
エラーを無視して合計 9(SUM) 2
エラーを無視して平均 1(AVERAGE) 2
フィルタ後のデータだけ合計 9(SUM) 4
フィルタ後+エラー無視で合計 9(SUM) 5
エラーを無視してk番目に大きい値 14(LARGE) 2
エラーを無視してk番目に小さい値 15(SMALL) 2
フィルタ後の中央値 12(MEDIAN) 4

AGGREGATE関数は引数の組み合わせが多く最初は難しく感じるかもしれませんが、「集計方法(何を計算するか)」と「オプション(何を無視するか)」の2つを決めるだけです。特にエラーが含まれるデータの集計・フィルタ後の合計という場面では、SUBTOTAL関数よりも確実に対処できます。ぜひ実務で活用してみてください。

ABOUT ME
IT解決チャンネル編集部
ExcelやWord、Windows、Googleスプレッドシートなど、ビジネスで使うITツールの使い方を初心者にもわかりやすく解説しています。関数の使い方から実務で役立つ応用テクニックまで、画像付きでていねいに紹介。パソコン操作で困ったときの頼れる情報源を目指しています。