エクセル AGGREGATE 関数:集計方法を選択して合計や平均などを取得する

はじめに

エクセルの AGGREGATE 関数の使い方を紹介します。

AGGREGATE 関数は集計方法を選択して合計や平均、上位や下位の順位などの値を取得します。「SUBTOTAL 関数」を無視する値を選択できる上位互換のような関数です。

=AGGREGATE(2,1,A1:A3) のようにして、「COUNT 関数」と同じようにセルの数をカウントできます。

=AGGREGATE(9,1,A1:A3) のようにして、「SUM 関数」と同じようにセルの合計を計算できます。

無視する値を選択できます。

フィルタを使って集計する方法は「非表示のセルを除いて合計や平均などの集計をする」をご覧ください。
  • 目次
    • AGGREGATE 関数の引数
    • 使い方
    • 解説

AGGREGATE 関数の引数

AGGREGATE(集計方法, 無視する値, 範囲1)
AGGREGATE(集計方法, 無視する値, 範囲1, 範囲2 …)
指定した集計方法無視する値を除いたすべての範囲を集計します。

引数「集計方法」集計に使用する関数を番号で指定します。スピル化
引数「無視する値」引数「範囲」の中で無視する値を番号で指定します。スピル化
引数「範囲」集計するセルの範囲を指定します。配列不可

AGGREGATE(集計方法, 無視する値, 範囲, 順位)
指定した集計方法無視する値を除いたすべての範囲から順位の値を取得します。

引数「集計方法」上記と同じです。スピル化
引数「無視する値」上記と同じです。スピル化
引数「範囲」集計するセルの範囲や配列を指定します。
引数「順位」引数「集計方法」が 14 または 15 のときに使用されます。
引数「範囲」の中から取得する順位を指定します。
スピル化
引数「集計方法」が 16 または 18 のときに使用されます。
引数「範囲」の中から取得する順位の値を比率で指定します。
スピル化
引数「集計方法」が 17 または 19 のときに使用されます。
引数「範囲」の中から取得する順位の値を 1/4 の値で指定します。
スピル化

スピル化:セルの範囲や配列を指定すると結果が「スピル」します。

配列不可:配列を指定できません。セルの範囲のみ指定できます。

引数「集計方法」

集計方法 引数 関数 説明
11AVERAGE 関数平均を求める
21COUNT 関数数値のセルを数える
31COUNTA 関数空白でないセルを数える
41MAX 関数最大値を取得する
51MIN 関数最小値を取得する
61PRODUCT 関数掛け算で合計を求める
71STDEV.S 関数母集団の標本から標準偏差を求める
81STDEV.P 関数母集団の全体から標準偏差を求める
91SUM 関数合計を求める
101VAR.S 関数母集団の標本から不偏分散を求める
111VAR.P 関数母集団の全体から不偏分散を求める
121MEDIAN 関数中央値を求める
131MODE.SNGL 関数最頻値 (最も頻繁に出現する値) を取得する
142LARGE 関数降順で指定した順位の値を取得する
152SMALL 関数昇順で指定した順位の値を取得する
162PERCENTILE.INC 関数順位の値を比率で指定して取得する
172QUARTILE.INC 関数順位の値を 1/4 の値で指定して取得する
182PERCENTILE.EXC 関数順位の値を比率で指定して取得する
192QUARTILE.EXC 関数順位の値を 1/4 の値で指定して取得する

表の引数 1 と 2 は使用する引数のことを表しています。

  • 引数 1AGGREGATE(集計方法, 無視する値, 範囲1)
  • 引数 2AGGREGATE(集計方法, 無視する値, 範囲, 順位)

引数「無視する値」

無視する値 説明
0この関数を無視します。
1この関数と非表示の行を無視します。
2この関数とエラーを無視します。
3この関数と非表示の行、エラーを無視します。
4すべてを含める。無視しません。
5非表示の行を無視します。
6エラーを無視します。
7非表示の行とエラーを無視します。

説明の「この関数」とは AGGREGATE 関数と「SUBTOTAL 関数」が入力されたセルのことです。

使い方

AGGREGATE 関数の使い方を紹介します。

集計方法を指定する

指定した集計方法で計算します。

=AGGREGATE(C3,4,$B$4:$B$8)
1
=AGGREGATE(C3,4,$B$4:$B$8,E3)
2

AGGREGATE 関数の結果を無視する

引数「無視する値」に 0 を入力して、AGGREGATE 関数を無視して合計を求めます。セル「B4」に AGGREGATE 関数を入力しています。

=AGGREGATE(9,B7,$B$2:$B$4)
3

非表示の行を無視する

引数「無視する値」に 5 を入力して、非表示の行を無視して合計を求めます。3 行目を非表示にしています。

=AGGREGATE(9,B7,$B$2:$B$4)
4

エラーを無視する

引数「無視する値」に 6 を入力して、エラーを無視して合計を求めます。

=AGGREGATE(9,B7,$B$2:$B$4)
5

解説

引数「集計方法」に指定した値によって結果が変わります。それぞれの集計方法は、対応する関数と同じです。詳しくはその関数のページをご覧ください。

引数「無視する値」が「この関数を無視する」値なら、AGGREGATE 関数または「SUBTOTAL 関数」が入力されているセルを無視します。

引数「無視する値」が「非表示の行を無視する」値なら、行を右クリックから非表示にしたり、フィルタによって非表示になっている行を無視します。

引数「無視する値」が「エラーを無視する」値なら、エラーのセルを無視します。

「無視する」とは、そのセルが引数「範囲」に含まれていないように集計することです。

セル「B2」~「B6」のように縦方向の集計を求めるために使用します。セル「B2」~「G2」のように横方向の集計するときは、非表示になっている列が必ず集計対象になります。

SUBTOTAL 関数との違い

  • AGGREGATE 関数:フィルタの対象になります。
  • SUBTOTAL 関数:フィルタの対象になりません。

フィルタの範囲に AGGREGATE 関数を入力したセルも含まれます。そのため、フィルタすると集計値もフィルタされます。「SUBTOTAL 関数」ならフィルタされません。

6

AGGREGATE 関数なら、フィルタで非表示になっているセルの値を無視するか選択できます。「SUBTOTAL 関数」なら必ず無視されます。

AGGREGATE 関数なら、引数「範囲」の中に別の AGGREGATE 関数または「SUBTOTAL 関数」の値を無視するか選択できます。「SUBTOTAL 関数」なら必ず無視されます。

セルが表示されているか判定

セルが表示されているか判定する ISVISIBLE 関数はありません。AGGREGATE 関数や「SUBTOTAL 関数」を使用して、セルが表示されているかどうかを取得できます。値が入力されていないセルも非表示として判定されます。

=AGGREGATE(3,5,B2)=1
=SUBTOTAL(103,B2)=1

TRUE なら表示、FALSE なら非表示または空です。