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)を最初に指定します。
カテゴリ別に平均を計算する
| A | B | |
|---|---|---|
| 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は使えますか?
はい、まったく同じ構文で使用できます。