Excel。AVERAGEA関数なのかAVERAGE関数なのか?平均を算出する関数が異なってくる
<AVERAGE関数・AVERAGEA関数・AVERAGEIF関数>
平均を算出するには、オートSUMボタンにあるAVERAGE関数を使うのが一般的ですが、範囲内にゼロがある場合や文字がある場合など、状況によって、平均を算出する関数が異なってしまうので、確認してみましょう。下記の表を用意しました
B列の得点1は、10件のデータがあります。この列が標準として比較していきます。
C列の得点2は、空白のデータがある場合。
D列の得点3は、0(ゼロ)にした場合。
E列の得点4は、欠席と文字にした場合。
関数の説明をしておきましょう。
12行目のAVERAGE関数は、お馴染みの関数ですね。
B12に数式を作ってみましょう。
数値1には、範囲選択するだけですから、B2:B11
ということで、B12の数式は、
=AVERAGE(B2:B11)
ですね。
このAVERAGE関数に単一条件をつけたのが、13行のAVERAGEIF関数です。
複数条件の場合は、AVERAGEIFS関数ですが、今回は、AVERAGEIF関数をつかっていきます。
14行のAVERAGEA関数はあまり見慣れない関数かもしれませんね。
AVERAGE関数は数値の平均値を計算し、AVERAGEA関数は文字列などのデータも含む値の平均値を計算するということを意味しています。
つまり、AVERAGEA関数は、文字列を0(ゼロ)として算出しています。
B14にAVERAGEA関数の数式をつくってみると、
=AVERAGEA(B2:B11)
となり、AVERAGE関数とAVERAGEA関数との違いは、ほとんど感じませんが、ダイアログボックスを表示すると、違いがハッキリ異なるのが確認できます。
AVERAGE関数は、引数が「数値1」となっていますが、AVERAGEA関数では、引数が「値1」となっています。
この差が生じることになります。
【算出してみる】
それぞれの関数で算出してみると、次のような結果が表示されてきました。B列は、とくに条件を付ける必要がないので、AVERAGEIF関数はつかっていません。
AVERAGE関数・AVERAGEA関数ともに、78.4と同じ数値を算出しました。
C列は、C7は何も入力されていない「空欄」です。
AVERAGEIF関数のC13の数式は、
=AVERAGEIF(C2:C11,">0")
とゼロより大きいという条件をつけていますが、<>””という条件でもOKです。
AVERAGE関数・AVERAGEA関数。そして、AVERAGEIF関数ともに、76と同じ数値を算出しました。
データの件数を9件としているのがわかります。
D列になると、違いは現れはじめます。
AVERAGE関数・AVERAGEA関数は、68,4と算出していますが、AVERAGEIF関数は、76と算出しています。
D13の数式は、
=AVERAGEIF(D2:D11,">0")
AVERAGEIF関数は、ゼロよりも大きいという条件をつけていますので、9件で算出していますが、AVERAGE関数・AVERAGEA関数はゼロも数値なので、それを含めた10件ということで算出しています。
AVERAGEIF関数と算出結果が異なったのはそのためです。
E列を見てみましょう。
E13のAVERAGEIF関数は、
=AVERAGEIF(E2:E11,"<>欠席")
という計算式にしています。欠席という文字でなかったらという条件にしています。
欠席というのが文字のために、AVERAGE関数では対象外になるので、AVERAGE関数とAVERAGEIF関数の算出結果が同じ、76と算出されていますが、AVERAGEA関数は、欠席という文字であっても、文字列を「0」として計算してしまうので、D列と同じ結果の68.4を算出しています。
このように、平均値を算出するのでも、使用する関数によって算出結果が変わってきますので、注意が必要です。