AVERAGEIF関数の使い方|条件に合う平均を出す・以上・含む・セル参照

AVERAGEIF関数の使い方|条件に合う平均を出す・以上・含む・セル参照

エクセルで、条件に合うセルだけの平均を出すには AVERAGEIF関数を使います。たとえば「A組」の点数の平均は、=AVERAGEIF(B3:B10,"A",C3:C10) で 80 と分かります。

条件には、文字のほかに「70以上」のような比較、「田を含む」のようなワイルドカード、セルの値も使えます。この記事では、AVERAGEIF関数の基本、数値の条件、セル参照、「〜を含む」の条件、平均以上の人だけの平均、該当がないときの対処までを、1つの表で説明します。下の練習ツールで、組や点数を書き換えて結果の変わり方を試せます。

目次

AVERAGEIF関数の書き方

AVERAGEIF関数の構文
数式=AVERAGEIF(範囲,条件,[平均対象範囲])
ひとことで条件に合う平均を求める
範囲
条件を判定する範囲です
条件
条件です
[平均対象範囲]
平均する範囲です
引数入れるもの例
範囲条件で調べる範囲B3:B10(組)
条件平均に入れる条件“A”、”>=70″、”*田*”
平均対象範囲平均する数値の範囲(省略可)C3:C10(点数)。省略すると「範囲」をそのまま平均します。

まず動かしてみよう|この記事のサンプルをその場で試せます

練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。

AVERAGEIF関数の使い方|やりたいこと別の式

やりたいこと式(例)結果
A組の平均=AVERAGEIF(B3:B10,”A”,C3:C10)80
70点以上の平均=AVERAGEIF(C3:C10,”>=70″)78
セルの値を条件に=AVERAGEIF(B3:B10,F12,C3:C10)70
「田」を含む人の平均=AVERAGEIF(A3:A10,”*田*”,C3:C10)80
平均以上の人の平均=ROUND(AVERAGEIF(C3:C10,”>=”&AVERAGE(C3:C10)),1)83.3
該当なしのとき=IFERROR(AVERAGEIF(B3:B10,”C”,C3:C10),”該当なし”)該当なし
エクセルのAVERAGEIF関数で条件に合う点数の平均を求めた表
エクセルのAVERAGEIF関数で条件に合う点数の平均を求めた表

文字の条件で平均する

1
結果を出したいセル(F3)を選びます。
2
「=AVERAGEIF(B3:B10,”A”,」と入力します。
3
平均する点数の範囲(C3:C10)をドラッグし、「)」と入力して Enter キーを押します。
AVERAGEIF関数の式
数式=AVERAGEIF(B3:B10,"A",C3:C10)
ひとことで条件に合う平均を求める
B3:B10
条件を判定する範囲です
"A"
条件です
C3:C10
平均する範囲です

A組は山田(80)・鈴木(90)・田中(欠席)・渡辺(70)です。「欠席」は文字なので除かれ、3人の平均で結果は 80 です。

ポイントポイント:A組の人数を COUNTIF関数で数えると 4 人ですが、平均に使われるのは数値の3人です。人数と平均の分母が違うことがあるので注意します。

数値の条件で平均する(平均対象範囲を省略)

条件を調べる範囲と平均する範囲が同じときは、3つ目の引数を省略できます。

AVERAGEIF関数の式
数式=AVERAGEIF(C3:C10,">=70")
ひとことで条件に合う平均を求める
C3:C10
条件を判定する範囲です
">=70"
条件です

70点以上の 80・90・70・70・80 の平均で、結果は 78 です。

ROUND関数の式
数式=ROUND(AVERAGEIF(C3:C10,"<80"),1)
ひとことで四捨五入する
AVERAGEIF(C3:C10,"<80")
四捨五入する数値です
1
桁数です

80点未満の 60・70・70 の平均は約66.67 で、小数1桁にして 66.7 です。

セルの値を条件にする

AVERAGEIF関数の式
数式=AVERAGEIF(B3:B10,F12,C3:C10)
ひとことで条件に合う平均を求める
B3:B10
条件を判定する範囲です
F12
条件です
C3:C10
平均する範囲です

F12 が「B」なので、B組(60・70・80、伊藤は空欄)の平均で 70 です。比較の条件をセルにするときは ">="&F12 のように & でつなげます。

「〜を含む」の条件で平均する

AVERAGEIF関数の構文
数式=AVERAGEIF(A3:A10,"*田*",C3:C10)
ひとことで条件に合う平均を求める
A3:A10
条件を判定する範囲です
"*田*"
条件です
C3:C10
平均する範囲です

「田」を含むのは山田(80)と田中(欠席)で、数値は山田さんだけなので結果は 80 です。

平均以上の人だけの平均を出す

全体の平均(75)を条件に入れます。

ROUND関数の式
数式=ROUND(AVERAGEIF(C3:C10,">="&AVERAGE(C3:C10)),1)
ひとことで四捨五入する
AVERAGEIF(C3:C10,">="&AVERAGE(C3:C10))
四捨五入する数値です
1
桁数です

75点以上の 80・90・80 の平均で、結果は 83.3 です。

条件に合うものがないときの表示を決める

条件に合う数値が1つもないと #DIV/0! エラーになります。IFERROR関数で表示を決めます。

IFERROR関数の構文
数式=IFERROR(AVERAGEIF(B3:B10,"C",C3:C10),"該当なし")
ひとことでエラーを別の値に置き換える
AVERAGEIF(B3:B10,"C",C3:C10)
エラーかどうかを調べる式です
"該当なし"
エラーのときの値です

C組はいないので、結果は 該当なし です(IFERROR関数の使い方)。

AVERAGEIF関数がうまくいかないときの確認表

症状考えられる原因対処
「#DIV/0!」になる条件に合う数値がない条件の表記を確かめる。IFERROR関数で表示を決める。
平均が合わない文字・空欄が除かれているCOUNTIFS関数で数値の件数を確かめる。
範囲がずれる範囲と平均対象範囲の行がずれているB3:B10 と C3:C10 のように同じ行から始める。
0点の人を除きたい0 は数値なので平均に入る条件を “<>0” にする。

AVERAGEIF関数のよくある質問

条件を2つ以上にするには?

AVERAGEIFS関数を使います。引数の順番が AVERAGEIF関数と違う(平均対象範囲が先頭)ので注意します(AVERAGEIFS関数の使い方)。

条件に合う件数や合計を出すには?

件数は COUNTIF関数、合計は SUMIF関数です(COUNTIF関数の使い方)。

あわせて読みたい:平均・集計の関連記事

練習用ファイル:練習用Excelファイル(.xlsx・無料)

平均以上かどうかを判定するときは、平均以上かどうかを判定する方法もあわせてご覧ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次