エクセルで平均を出す方法|AVERAGE・AVERAGEIF・0や空欄を除く平均

記事
ビジネス・マーケティング
テストの点数、売上、気温など、数字の平均を出す方法をまとめます。基本は AVERAGE 関数の1本ですが、「0を除きたい」「クラスごとに出したい」となると、使う関数が変わります。

下の表で試した結果を書きます。点数は B2:B11、クラスは C2:C11 です。B列には、空欄が1つ(高橋さん)、「欠席」という文字が1つ(伊藤さん)、0点が1つ(渡辺さん)入っています。

■ いちばん簡単:AVERAGE
=AVERAGE(B2:B11)
試した結果:70
空欄と文字(欠席)は数えずに飛ばし、数字の8個だけで平均を出します。合計560 ÷ 8個 = 70です。0点は数字なので平均に入ります。

■ 0点を除いて平均を出す:AVERAGEIF
=AVERAGEIF(B2:B11,">0")
試した結果:80
0より大きい数字だけで平均します(560 ÷ 7個)。欠席の人の0を入れたくないときに使います。

■ クラスごとの平均:AVERAGEIF(条件の範囲と平均の範囲を分ける)
=AVERAGEIF(C2:C11,"A",B2:B11)
試した結果:63
1つ目が「条件を見る範囲」、2つ目が「条件」、3つ目が「平均する範囲」です。Bクラスは条件を"B"にすると 81.6666…になります。

■ 条件を2つ重ねる:AVERAGEIFS
=AVERAGEIFS(B2:B11,C2:C11,"A",B2:B11,">0")
試した結果:78.75
Aクラスで、かつ0点でない人の平均です。AVERAGEIFSは先に平均する範囲を書く点に注意してください(AVERAGEIFと順番が逆です)。

■ 小数を整える:ROUND
=ROUND(AVERAGEIF(C2:C11,"B",B2:B11),1)
試した結果:81.7
小数第1位までにします。見た目だけ変えたいときは、セルの書式で桁数を指定する方法もあります。

■ 文字も0として数えたいとき:AVERAGEA
=AVERAGEA(B2:B11)
試した結果:62.2222…
「欠席」のような文字を0として数えるため、AVERAGEより低くなります(560 ÷ 9個)。空欄は飛ばされます。

■ 合計÷個数でも同じ
=SUM(B2:B11)/COUNT(B2:B11)
試した結果:70
AVERAGEと同じ考え方です。分母を自分で変えたいとき(例:欠席も人数に入れる)は、COUNTの部分を人数に置き換えます。

■ うまくいかないとき
・#DIV/0! と出る:平均する数字が1つも無い状態です。=IFERROR(AVERAGE(G2:G11),"") のように包むと、空のセルにできます。
・平均が思ったより低い:0が入っています。AVERAGEIFの">0"で除くか、空欄に直します。
・数字を入れたのに数えられない:左寄せの「文字としての数字」かもしれません。VALUE関数か、セルの書式を標準に直してください。

■ 向かない場合
複数の表をまたいで平均を出したり、人数の重みを付けた平均を毎月出したりするときは、式を足し続けるより、表の作りから整えたほうが楽なことがあります。自分で組み直す時間がないときは、専用の調整サービスもあります。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す