AVERAGEIFS関数の使い方|複数条件で平均を求める
AVERAGEIFS関数は、複数の条件に一致するデータの平均値を求める関数です。SUMIFS関数やCOUNTIFS関数と同じ構文体系で、条件付きの平均計算を簡単に行えます。部署別・期間別の平均売上や、カテゴリ別の平均点数を求めるときに便利です。
AVERAGEIFS関数の基本構文
=AVERAGEIFS(平均対象範囲, 条件範囲1, 条件1, [条件範囲2, 条件2], ...)
引数の説明
| 引数 | 説明 | 必須/任意 |
|---|---|---|
| 平均対象範囲 | 平均を求めるセル範囲 | 必須 |
| 条件範囲1 | 最初の条件を適用する範囲 | 必須 |
| 条件1 | 条件範囲1に適用する条件 | 必須 |
| 条件範囲2 | 2番目の条件を適用する範囲 | 任意 |
| 条件2 | 条件範囲2に適用する条件 | 任意 |
| … | 最大127組の条件範囲と条件を指定可能 | 任意 |
SUMIFS関数と同じく、対象範囲を第1引数に指定する点がAVERAGEIF関数との違いです。
AVERAGEIF関数との比較
| 項目 | AVERAGEIF | AVERAGEIFS |
|---|---|---|
| 条件の数 | 1つのみ | 複数指定可 |
| 対象範囲の位置 | 第3引数 | 第1引数 |
| 範囲サイズの制約 | 対象範囲は条件範囲と異なるサイズ可 | すべての範囲が同じサイズ |
実践例1:支店と月を指定した平均売上
売上データから、特定の支店・月の平均売上を求めます。
| 支店 | 月 | 売上 |
|---|---|---|
| 東京 | 4月 | 500000 |
| 大阪 | 4月 | 300000 |
| 東京 | 5月 | 550000 |
| 大阪 | 5月 | 320000 |
| 東京 | 4月 | 480000 |
=AVERAGEIFS(C2:C6, A2:A6, "東京", B2:B6, "4月")
結果は490000((500000 + 480000) / 2)です。東京支店の4月のデータ2件の平均を計算しています。
実践例2:特定の範囲に該当するデータの平均
金額が一定範囲内のデータの平均を求める例です。
=AVERAGEIFS(C2:C100, C2:C100, ">=100000", C2:C100, "<=500000")
10万円以上50万円以下のデータだけを対象に平均を計算します。外れ値を除外した平均を求めたい場合に便利です。
実践例3:日付範囲を条件にした平均
特定期間のデータの平均を求めます。
=AVERAGEIFS(C2:C100, B2:B100, ">=" & DATE(2026,4,1), B2:B100, "<=" & DATE(2026,6,30))
2026年4月から6月までの売上データの平均を計算します。四半期ごとの平均売上を求める場合に使えます。
実践例4:カテゴリ別・評価別の平均点数
アンケートデータから、カテゴリ別の平均スコアを求める例です。
| カテゴリ | 性別 | スコア |
|---|---|---|
| 商品A | 男性 | 85 |
| 商品A | 女性 | 90 |
| 商品B | 男性 | 70 |
| 商品A | 男性 | 80 |
| 商品B | 女性 | 75 |
商品Aの男性の平均スコアを求めます。
=AVERAGEIFS(C2:C6, A2:A6, "商品A", B2:B6, "男性")
結果は82.5((85 + 80) / 2)です。
実践例5:セル参照による動的な条件指定
条件をセル参照で指定し、ドロップダウンリストと連動させる例です。
=AVERAGEIFS(C2:C100, A2:A100, E2, B2:B100, F2)
E2にカテゴリ名、F2に性別を入力すると、対応する平均値が自動的に計算されます。ダッシュボード的な集計シートを作成する際に便利です。
よくあるエラーと対処法
#DIV/0!エラー
条件に一致するデータが1件もない場合に発生します。SUMIFSやCOUNTIFSでは0が返されますが、AVERAGEIFSでは0件の平均は計算できないため#DIV/0!エラーになります。
IFERROR関数で対処します。
=IFERROR(AVERAGEIFS(C2:C100, A2:A100, "東京", B2:B100, "4月"), "データなし")
#VALUE!エラー
条件範囲と平均対象範囲のサイズが一致しない場合に発生します。
# エラーになる
=AVERAGEIFS(C2:C10, A2:A5, "東京")
# 正しい
=AVERAGEIFS(C2:C10, A2:A10, "東京")
文字列が混在するデータ
平均対象範囲に文字列が含まれている場合、文字列のセルは無視されて数値のみで平均が計算されます。ただし、意図しないデータが混在していないか確認することをおすすめします。
AVERAGE関数ファミリーの使い分け
| 関数 | 用途 |
|---|---|
| AVERAGE | 単純な平均値 |
| AVERAGEA | 文字列をゼロとして含めた平均 |
| AVERAGEIF | 1つの条件での平均 |
| AVERAGEIFS | 複数条件での平均 |
| TRIMMEAN | 上下の外れ値を除外した平均 |
用途に応じて適切な関数を選びましょう。外れ値の影響を減らしたい場合はTRIMMEAN関数も検討してください。
実務でのテクニック
SUMIFS / COUNTIFS との組み合わせ
AVERAGEIFS関数の結果はSUMIFS/COUNTIFSの結果から計算することもできます。
=SUMIFS(C2:C100, A2:A100, "東京") / COUNTIFS(A2:A100, "東京")
この方法はAVERAGEIFS関数と同じ結果になりますが、合計と件数を個別に確認したい場合に使えます。
加重平均の計算
AVERAGEIFS関数は単純平均を計算するため、加重平均が必要な場合はSUMPRODUCT関数やSUMIFS関数を使って計算します。
Google スプレッドシートでの互換性
AVERAGEIFS関数はGoogle スプレッドシートでも同じ構文で利用できます。#DIV/0!エラーの発生条件や対処法も同一です。
まとめ
AVERAGEIFS関数は複数条件でデータの平均を求める関数です。
- SUMIFS関数と同じ構文体系で直感的に使える
- 平均対象範囲を第1引数に指定する
- 条件に一致するデータがない場合は#DIV/0!エラーになる
- IFERRORと組み合わせてエラーを回避する
- すべての範囲は同じサイズにする
条件付きの平均値はデータ分析の基本です。SUMIFS関数やCOUNTIFS関数と合わせて使いこなしましょう。