AVERAGE関数の使い方|平均が想定と違うときの原因

執筆者:

カテゴリ:

AVERAGEは、指定した範囲の平均値を求める関数です。

書き方は単純ですが、空欄と0の扱いを知らないと結果がずれます。この記事ではそこを中心に扱います。

書式

=AVERAGE(範囲1, [範囲2], ...)

基本の使い方

A
1 80
2 90
3 70
=AVERAGE(A1:A3)   → 80

離れた範囲もまとめて指定できます。

=AVERAGE(A1:A10, C1:C10)

空欄と0の違い

ここが最も重要です。

A
1 80
2 (空欄)
3 70
=AVERAGE(A1:A3)   → 75

空欄は「無かったこと」として扱われます。 2件で割られて75です。

一方、A2に 0 が入っていると結果が変わります。

(A2 = 0 の場合)
=AVERAGE(A1:A3)   → 50

0は1件として数えられます。 3件で割られて50です。

「未回答」を空欄にするか0にするかで、平均が大きく変わります。未入力は空欄のままにしておくのが原則です。0を入れてしまうと、回答した人の平均が下がります。

数式が返した空文字に注意

=IF(A2="", "", A2*1.1)

このような数式の結果は、見た目は空欄ですが文字列です。 AVERAGEは文字列を無視するので、この場合は空欄と同じ扱いになります。

ただし、Excelでは範囲によってエラーになることがあります。安全に書くなら AVERAGEIF を使ってください。

=AVERAGEIF(A:A, "<>")

想定と合わない原因

1. 数値が文字列になっている

最も多い原因です。 文字列は無視されるので、その分だけ件数が減り、平均がずれます。

確認する:

=COUNT(A2:A100)

COUNT が行数より少なければ文字列が混ざっています。セルが左寄せになっていないか見てください。

2. 0が入っている

上で書いた通りです。未入力に0を入れていないか確認してください。

3. 非表示の行も含まれている

AVERAGEはフィルタで隠れた行も計算に入れます。 表示中のデータだけで平均を出したいなら SUBTOTAL を使ってください。

=SUBTOTAL(101, A2:A100)

101 は「平均、非表示の行を除く」という意味です。

4. 外れ値に引っ張られている

平均は外れ値の影響を強く受けます。1件だけ極端な値があると、全体の平均が実感とずれます。

この場合は中央値を見てください。

=MEDIAN(A2:A100)

平均と中央値が大きく離れていたら、分布が偏っているサインです。売上や年収のように偏りが出やすいデータでは、中央値のほうが実態を表すことが多くなります。

両方を並べて出しておくのが実務的です。

条件付きの平均

条件を付けるなら AVERAGEIF / AVERAGEIFS を使います。

=AVERAGEIF(B:B, "東京", C:C)
=AVERAGEIFS(C:C, B:B, "東京", D:D, ">=1000")

エラーが混ざっているとき

範囲内に #N/A などがあると、AVERAGEもエラーになります。元のエラーを潰すのが基本です。

=IFERROR(元の数式, "")

"" を返せばAVERAGEは無視します。0 を返すと平均が下がるので、ここは "" にしてください。

Excelとの違い

AVERAGE・AVERAGEIF・AVERAGEIFS・MEDIAN はすべて共通です。書式も挙動も同じです。

Excelには AGGREGATE(エラーを無視して集計)がありますが、スプレッドシートにはありません。代わりに QUERYFILTER を使います。

=AVERAGE(FILTER(C:C, B:B="東京"))

まとめ

  • – 書式は =AVERAGE(範囲)
  • 空欄は無視、0は1件として数える。未入力に0を入れない
  • – 文字列は無視されるので、混ざっていると平均がずれる
  • – フィルタ中の平均は SUBTOTAL
  • 平均と中央値を並べて見ると、分布の偏りに気づける

関連する関数

  • AVERAGEIF — 条件に合うものだけ平均
  • SUM — 合計。文字列化の問題も同じ
  • COUNT — 文字列化の検出に使う
  • SUBTOTAL — フィルタで隠れた行を除く集計
  • 関数一覧に戻る

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です