🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

ExcelのAVERAGE関数 — 空白とゼロで平均が変わる理由

|

ExcelのAVERAGE関数 — 空白とゼロで平均が変わる理由

要点AVERAGE は合計 ÷ 個数ですが、対象は見つけた数値だけです: =AVERAGE(B2:B20)空白セルと文字列はまるごと飛ばし——合計にも割る数にも 入りません——けれど本物の 0 は数値として数え、平均を引き下げます。この1点の 違いがすべての罠です。「売上なし」を 0 と記録するか、セルを空白のままにするかで、 同じ現実の平均が2つの違う値になり、どちらを得たのかを数式は何も教えてくれません。 AVERAGEA は文字列と FALSE0 として数える強引な兄弟で——ほぼ使いどころが ありません。素の平均には AVERAGE を。そして欠損値が何を意味するかは、 データ入力の段階で決めてください。

=AVERAGE(B2:B20)          ' 数値だけの平均。空白と文字列は無視される
=AVERAGE(B2:B20, D2:D20)  ' 複数範囲もOK — まとめてから平均する
=AVERAGE(3, 5, 7)         ' 定数も使える -> 5
=AVERAGEA(B2:B20)         ' 文字列とFALSEは0、TRUEは1として数える — たいてい誤り

「AVERAGE 関数 Excel」で検索すれば、=AVERAGE(number1, number2, …) と「算術平均を 返します」という説明が出てきます。まるで難しいのはボタンを見つけることだけ、とでも言う ように。でも平均が何かは、あなたはもう知っています。本当に噛んでくるのは——2人のアナ リストが同じ列に AVERAGE を向けて違う数字を得る理由は——算術ではありません。何が 「値」として数えられるかです。空白、ゼロ、文字列はそれぞれ違う扱いを受け、そのルールが 静かにあなたの答えを決めます。本記事はまずそこから始めます。

この記事で学べること

  • 考え方の軸:AVERAGE は合計 ÷ 個数、ただし本物の数値だけが対象
  • 空白とゼロの罠:空のセルと 0 で平均が変わる理由
  • 列全体を参照しても見出しの文字列を安全に飛ばせる理由
  • AVERAGEA が実際にすること——そしてほぼ正解にならない理由
  • 平均が間違った問いになるとき:平均の平均、そして百分率
  • 空集合のケース:#DIV/0! とそのガード

考え方の軸:数値の合計 ÷ 個数

AVERAGE がすることは、きっかり2つです。渡されたものの中のすべての数値を足し、その 数値がいくつあったかで割る。この「数値」という言葉が効いています。空白セルは数値では ないので、合計にも個数にも寄与しません——最初から無いのと同じです。"N/A" のような 文字列も数値ではないので、同じように飛ばされます。平均される対象として生き残るのは、 本物の数値セルだけです。

これはたいてい望みどおりの動きで、=AVERAGE(B:B) と列まるごとを指定しても B1 の 見出しラベルで詰まらないのはこのためです——文字列はただ無視されます。ですが、この同じ 寛容さが次のセクションの罠を隠しています。AVERAGE飛ばさない「空っぽ」が1種類 だけあるからです。実際に 0 が入っているセルです。

空白とゼロの罠:答えを決めるのはこれ

知っておく価値のある失敗パターンがこれです。ある営業担当が今月まったく売上を上げなかった とします。それを記録する方法は2つあり、両者は入れ替え可能ではありません

' B列: 10, 20, 0        (「売上なし」をゼロで記録)
=AVERAGE(B2:B4)   ' -> 10     (0 を数える: 30 ÷ 3)

' B列: 10, 20, (空白)   (「売上なし」を空白のまま)
=AVERAGE(B2:B4)   ' -> 15     (空白は飛ばす: 30 ÷ 2)

同じ3人、同じ「売上なし」なのに、平均は 10 から 15 へ——50% もの差——で揺れます。 誰も「判断」だとは思っていないデータ入力の慣習ひとつだけを根拠に、です。本物の 0 は 本物の数値です。合計に加わり(何も足しませんが)、そして肝心なことに個数にも加わって (割る数を1増やして)、平均を引き下げます。空白はどちらにも加わりません。

どちらの答えも普遍的に「正しい」わけではない——そこが要点です。売上ゼロの月を本当に 「成績ゼロの月」として数えるなら、10 が正しい。その人たちが休暇中で、そもそも分母に 入れるべきでないなら、15 が正しい。危ないのは、どちらの場合も数式がまったく同じに 見えることで、データがたまたま採っている慣習に、あなたを黙って縛りつけます。意図して 決めてください。平均からゼロを外したいなら、入力時にセルを空白のままにするか、 AVERAGEIF で明示的に除きます: =AVERAGEIF(B2:B4, "<>0")

AVERAGEA:文字列をゼロと数える兄弟

AVERAGEA は、より徹底した AVERAGE——「平均、ただし全部込み」——のように見えます。 その「全部込み」が実際に意味するのは、非数値を飛ばす代わりに型変換することです。 文字列は 0 に、FALSE0 に、TRUE1なり、空白は相変わらず飛ばされます。

' A列: 90, 80, "absent"
=AVERAGE(A2:A4)    ' -> 85    ("absent" は飛ばす: 170 ÷ 2)
=AVERAGEA(A2:A4)   ' -> 56.7  ("absent" を 0 と数える: 170 ÷ 3)

この 56.7 は、まず誰も欲しかった数字ではありません。得点の列に文字ラベルが1つ紛れ込んだ だけで、平均は薄められてしまいます——ラベルがゼロとして着地し、平均を強く引き下げるの です。AVERAGEA の正直な使いどころは狭い。データの中の文字列を本当にゼロとして扱うべき とき(たとえば "pending" が、いま測ろうとしている目的にとって本当に価値ゼロの案件を 意味する、など)だけです。そんな場面はまれです。既定の前提は AVERAGE にすべきで、 AVERAGEA に手を伸ばすのは、なぜその単語が 0 として数える資格を持つのかを声に出して 言えるときだけにしましょう。

平均が間違った問いになるとき

最も鋭い失敗は、空白や文字列の話ではありません——間違ったものを平均している、という 話です。ほとんどすべてが、次の2パターンから生まれます。

平均の平均。 各地域がすでに平均成約額を報告していて、その地域別平均を AVERAGE すると、 成約3件の地域と300件の地域に等しい重みを与えたことになります。結果は、どんな現実の 問いにも答えない、ただの数字です。それぞれの数字が違う規模のグループを要約しているときは、 素の平均ではなく加重平均が必要です——合計を、合計件数で割る。これは専用のガイドを 持つほどよくある話です:Excelの加重平均 を参照して ください。

割合と成長率の平均。 百分率を素直に平均するのも、同じ罠です。+50% の年に続いて −50% の年が来ても、平均は 0% になりません——最終的に 25% のマイナスです——だから 2つの百分率の AVERAGE はあなたに嘘をつきます。複利的な成長には幾何平均が必要で、 これは GEOMEAN・TRIMMEAN・HARMEAN で扱います。 経験則はこうです。AVERAGE は、同じ種類・同じ重みの独立した量のためのもの。数字が 要約値・百分率・割合になった瞬間、そもそも素の平均が正しい道具なのかを問い直してください。

空集合のケース:#DIV/0!

範囲の中に数値がまったくないとき——どのセルも空白か文字列——AVERAGE は個数が ゼロになり、それで割れないので #DIV/0! を返します。これは、一致する行がないときに AVERAGEIFS が見せるのと同じ「何も無いものの平均は 未定義」という挙動です。範囲が正当に空になりうるとき(まだ登録のないカテゴリなど)は、 包みます。

=IFERROR(AVERAGE(B2:B20), "—")   ' 空のとき #DIV/0! の代わりにダッシュを表示

ダッシュボードに渡す平均や、他のセルが積み上がる土台になる平均には、これを反射にして ください——たった1つの #DIV/0! が、下流のすべてに連鎖します。

ExcelMaster の使いどころ

平均の危ないところは、入力そのものでは決してありません——記録された 0 と空白が違う 答えを出すこと、AVERAGEA が文字ラベルを静かにゼロに変えること、そして「地域別平均の 平均」がたいてい間違った問いであること、を知っていることです。ExcelMaster に 「なぜ平均が思ったより低いの?」と尋ねれば、範囲の中に空白であるべきゼロや AVERAGEA が 数えている文字列がないかを確かめ、あなたのデータが実際にどの慣習を採っているかを教えます。 「地域別の平均成約額を、成約件数で重みづけして」と言えば、誤解を招く素の平均ではなく、 加重の数式を書きます。

よくある質問

Excel の AVERAGE は空白セルを無視しますか?

はい。AVERAGE は本当に空のセルをまるごと飛ばします——合計にも割る数にも数えません。 ですが 0 が入ったセルは本物の数値なので含まれ、平均を下げます。空白とゼロのこの違いが、 平均が期待どおりにならない最もよくある原因です。

AVERAGE と AVERAGEA の違いは?

AVERAGE は数値だけを平均し、文字列と論理値を飛ばします。AVERAGEA はそれらを型変換して 取り込みます。文字列と FALSE0TRUE1 として数えます。文字ラベルが1つ紛れた 得点の列では、AVERAGE がラベルを無視するのに対し、AVERAGEA はそれをゼロと数えて平均を 引き下げます——だから、ほぼ常に欲しいのは AVERAGE です。

AVERAGE が #DIV/0! を返すのはなぜ?

範囲に平均する数値が1つもないからです——どのセルも空白か文字列で、個数がゼロになり、 Excel はそれで割れません。空のケースに備えて包みます:=IFERROR(AVERAGE(B2:B20), "—")。 そこに数値があるはずなら、文字列として保存されていないか(左揃えで、緑の三角形が付いて いる)を確認してください。

セルを平均しつつゼロを無視するには?

「ゼロと等しくない」条件を付けた AVERAGEIF を使います:=AVERAGEIF(B2:B20, "<>0")。 これは本物のゼロを合計からも個数からも除き、ゼロ以外の値だけの平均を返します——0 が 本当の測定値ではなく「データなし」を意味するときに便利です。

フィルタで絞った(表示中だけの)リストを平均するには?

AVERAGE は非表示の行も含めます。フィルタで表示されている行だけを平均するには、 SUBTOTAL を使います:=SUBTOTAL(101, B2:B20) は 表示中のセルだけを平均し、フィルタを変えるたびに更新されます。

検証環境

検証環境: Excel 365 (Windows 11) — 最終確認 2026-07-27.

関連ガイド: Excelの加重平均 · Excel GEOMEAN・TRIMMEAN・HARMEAN · ExcelのAVERAGEIF & AVERAGEIFS · Excel SUBTOTAL · Excel ROUND