AVERAGEIF関数の使い方|条件付きで平均を求める
AVERAGEIF関数は、指定した条件に一致するセルの平均値を求める関数です。「特定の部門の平均売上」「合格点以上の平均点」のように、条件で絞り込んだデータだけの平均を計算できます。データ分析や業績評価の場面で頻繁に使われます。
AVERAGEIF関数の基本構文
AVERAGEIF関数はSUMIF関数と同じ引数構成です。条件範囲、条件、平均対象範囲の順番で指定します。
=AVERAGEIF(条件範囲, 条件, [平均対象範囲])
引数の説明
| 引数 | 説明 | 必須/任意 |
|---|---|---|
| 条件範囲 | 条件を判定するセル範囲 | 必須 |
| 条件 | 条件範囲に適用する条件 | 必須 |
| 平均対象範囲 | 平均を求めるセル範囲 | 任意 |
平均対象範囲を省略した場合
平均対象範囲を省略すると、条件範囲そのものが平均対象になります。
=AVERAGEIF(B2:B50, ">=60")
B列の中で60以上のセルだけの平均値を返します。
文字列条件で平均を求める
最も基本的な使い方は、特定の文字列に一致するデータの平均を計算するケースです。
部門別の平均売上
以下の売上データから、部門ごとの平均売上を求めます。
| A列:担当者 | B列:部門 | C列:月間売上 |
|---|---|---|
| 田中 | 営業1課 | 1200000 |
| 佐藤 | 営業2課 | 980000 |
| 山田 | 営業1課 | 1450000 |
| 鈴木 | 営業2課 | 1100000 |
| 高橋 | 営業1課 | 870000 |
営業1課の平均売上を求めます。
=AVERAGEIF(B2:B6, "営業1課", C2:C6)
結果は1173333(小数点以下省略)です。1200000、1450000、870000の3つの値の平均を返します。
セル参照で条件を指定する
条件をセル参照にすると、セルの値を変更するだけで集計対象を切り替えられます。
=AVERAGEIF(B2:B6, E2, C2:C6)
E2セルに部門名を入力することで、対応する平均売上が表示されます。
比較演算子を使った条件指定
数値条件には比較演算子を使います。演算子と数値を文字列として指定します。
一定金額以上の平均売上
売上が100万円以上の担当者だけの平均売上を求めます。
=AVERAGEIF(C2:C50, ">=1000000")
平均対象範囲を省略しているため、C列の中で100万円以上のセルだけの平均を計算します。
特定範囲の点数の平均
テストの点数データから、60点以上の受験者の平均点を求めます。
| A列:受験者 | B列:点数 |
|---|---|
| 田中 | 85 |
| 佐藤 | 42 |
| 山田 | 78 |
| 鈴木 | 55 |
| 高橋 | 91 |
=AVERAGEIF(B2:B6, ">=60")
結果は84.67です。85、78、91の3つの値の平均が返されます。42と55は条件に一致しないため除外されます。
セル参照との組み合わせ
基準値をセルで管理する場合は、演算子と&演算子で結合します。
=AVERAGEIF(B2:B50, ">=" & E2)
E2セルの値以上のデータだけの平均を求めます。
空白セルの扱い
AVERAGEIF関数における空白セルの処理は、正確な集計を行ううえで重要です。
空白セルは計算から除外される
AVERAGEIF関数は、平均対象範囲内の空白セルを自動的に除外します。つまり、空白セルは分母にも分子にも含まれません。
| A列:部門 | B列:売上 |
|---|---|
| 営業1課 | 500000 |
| 営業1課 | (空白) |
| 営業1課 | 700000 |
=AVERAGEIF(A2:A4, "営業1課", B2:B4)
結果は600000です。空白セルを除いた500000と700000の平均が計算されます。
0と空白の違い
空白セルは計算から除外されますが、0が入力されたセルは計算に含まれます。
| A列:部門 | B列:売上 |
|---|---|
| 営業1課 | 500000 |
| 営業1課 | 0 |
| 営業1課 | 700000 |
=AVERAGEIF(A2:A4, "営業1課", B2:B4)
結果は400000です。0を含めた3つの値の平均が返されます。データの意味に応じて、0を入力すべきか空白にすべきかを判断してください。
空白以外のデータの平均
特定の列が空白でないデータだけの平均を求める場合は「<>」を使います。
=AVERAGEIF(D2:D100, "<>", C2:C100)
D列が空白でない行のC列の平均を返します。
エラー回避のテクニック
AVERAGEIF関数を使用する際に発生しやすいエラーとその対処法を解説します。
#DIV/0!エラーの原因と対策
条件に一致するデータが1つもない場合、AVERAGEIF関数は#DIV/0!エラーを返します。平均を計算する際の分母が0になるためです。
# 条件に一致するデータがないとエラーになる
=AVERAGEIF(B2:B50, "営業3課", C2:C50)
IFERROR関数で囲むことで、エラー時に代替の値を表示できます。
=IFERROR(AVERAGEIF(B2:B50, "営業3課", C2:C50), "データなし")
数値と文字列の混在に注意
平均対象範囲に文字列が含まれている場合、その文字列セルは無視されます。ただし、数値が文字列形式で保存されている場合は計算に含まれません。
セルの値が文字列として保存されていないかを確認するには、ISNUMBER関数を使います。
=ISNUMBER(C2)
TRUEが返れば数値、FALSEが返れば文字列です。
#VALUE!エラーの対処
条件範囲と平均対象範囲の行数が異なる場合でもSUMIF同様に自動調整されますが、意図しない結果を防ぐため範囲のサイズは揃えてください。
実務での活用例
成績管理での合格者平均
試験の成績データから、合格ラインを超えた受験者の平均点を算出します。
| A列:受験番号 | B列:氏名 | C列:点数 | D列:合否 |
|---|---|---|---|
| 001 | 田中 | 82 | 合格 |
| 002 | 佐藤 | 45 | 不合格 |
| 003 | 山田 | 71 | 合格 |
| 004 | 鈴木 | 38 | 不合格 |
| 005 | 高橋 | 93 | 合格 |
# 合格者の平均点
=AVERAGEIF(D2:D6, "合格", C2:C6)
結果は82(82 + 71 + 93 / 3)です。合格者だけの平均点を把握できます。
商品カテゴリ別の平均単価
商品マスターから、カテゴリごとの平均単価を求めます。
=AVERAGEIF(B2:B200, "飲料", D2:D200)
カテゴリが「飲料」の商品の平均単価を返します。
異常値を除外した平均
極端に大きい値や小さい値を除外して平均を求めたい場合、比較演算子を活用します。
# 100万円以下のデータだけの平均
=AVERAGEIF(C2:C100, "<=1000000")
ただし、上限と下限の両方を指定したい場合はAVERAGEIFS関数を使います。
=AVERAGEIFS(C2:C100, C2:C100, ">=10000", C2:C100, "<=1000000")
まとめ
AVERAGEIF関数は、1つの条件に一致するデータの平均を求める関数です。
- 条件範囲、条件、平均対象範囲の3つの引数で構成される
- 空白セルは自動的に計算から除外される(0は含まれる)
- 条件に一致するデータがないと#DIV/0!エラーになるため、IFERROR関数で対処する
- 比較演算子やワイルドカードで柔軟な条件指定が可能
- 複数条件が必要な場合はAVERAGEIFS関数を使用する
なお、AVERAGEIF関数はGoogle スプレッドシートでも同じ構文で利用できます。成績管理や売上分析など、条件付きの平均計算は実務で頻出します。空白セルや0の扱いを正しく理解し、正確な集計を行いましょう。