エクセル関数辞典 エクセル関数辞典

AVERAGEIF関数の使い方|条件付きで平均を求める

AVERAGEIF 平均 集計 条件付き平均 Excel関数
広告スペース (article-top)

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の扱いを正しく理解し、正確な集計を行いましょう。

広告スペース (article-bottom)

あわせて読みたい