cellio

ExcelのAVERAGEIF・AVERAGEIFS関数:条件付きで平均を計算する方法

ExcelのAVERAGEIFおよびAVERAGEIFS関数を使って、条件に一致するデータのみの平均を計算する方法を解説。0を除外する集計、日付範囲の指定、#DIV/0!エラーの対処法まで分かりやすく紹介します。

著者 Ayoub Farid · · 4 分で読めます

AVERAGEIF関数は、通常のAVERAGE関数と同じように平均を計算しますが、指定した条件に一致する行だけを対象にできる点が特徴です。特定地域の平均注文額、特定クラスの平均点、実績のない「0」の月を除いた平均支出など、さまざまな集計に活用できます。

構文

=AVERAGEIF(range, criteria, [average_range])
=AVERAGEIFS(average_range, criteria_range1, criteria1, ...)

SUMIFやSUMIFSと同様の仕組みです。複数の条件を指定できるAVERAGEIFS関数では、平均を計算するセル範囲(average_range)を最初に指定します。

カテゴリ別に平均を計算する

AB
1カテゴリ価格
2コーヒー2.50
3コーヒー3.50
4フード2.80
5フード3.00
=AVERAGEIF(A2:A5,"Food",B2:B5)   → 2.90

0を除外して平均を計算する

=AVERAGEIF(B2:B13,"<>0")

データのない月に「0」が入力されている場合などに役立ちます。

複数の条件を指定する

「North」地域かつ「Coffee」のみを対象にする場合:

=AVERAGEIFS(D2:D500,B2:B500,"North",C2:C500,"Coffee")

2つの日付の間のデータを集計する場合(開始日:G1、終了日:G2):

=AVERAGEIFS(D2:D500,A2:A500,">="&G1,A2:A500,"<="&G2)

一致するデータがない場合の対処法

条件に一致するセルが1つもない場合、AVERAGEIF関数は「0件で割る」状態になるため、#DIV/0!エラーを返します。このエラーを回避するには、IFERROR関数を組み合わせます。

=IFERROR(AVERAGEIF(A2:A100,F2,B2:B100),"No data")

詳細はIFERROR関数および#DIV/0! エラーの解決法についての記事もご覧ください。

よくあるミス

  • 条件列の空白セルが無視されると思い込んでしまうこと:空白セルは条件を "" と指定した場合にのみ一致します。
  • AVERAGEIF関数とAVERAGEIFS関数で、引数の順番を混同してしまうこと。
  • データ数が異なるグループのパーセンテージ(割合)を単純平均してしまうこと:この場合は加重平均を使う必要があります。

よくある質問

Excelで特定のセルだけを平均するにはどうすればよいですか?

AVERAGEIF関数に条件を指定して集計します。例:=AVERAGEIF(A:A,"Food",B:B)

0を除外して平均を計算するにはどうすればよいですか?

=AVERAGEIF(range,"<>0") と記述します。

AVERAGEIFが #DIV/0! エラーを返すのはなぜですか?

条件に一致する行が1つも存在しないためです。IFERROR関数で囲むことでエラー表示を防げます。

GoogleスプレッドシートでもAVERAGEIFSは使えますか?

はい、まったく同じ構文で使用できます。

あわせて読みたい