エクセルで平均値を計算しようとした際、明らかにデータが入っているはずなのに「0」と表示されてしまい、困った経験はありませんか。この現象は多くのユーザーが直面する典型的なトラブルの一つです。
エクセルで平均が0になる原因は、単なる入力ミスだけでなく、データの形式が「文字列」になっていたり、計算式の設定に不備があったりと多岐にわたります。原因を特定せずに闇雲に操作をしても、なかなか正しい結果は得られません。
この記事では、エクセルで平均が0になる理由を詳しく解説し、初心者の方でもすぐに実践できる具体的な解決策を紹介します。設定を見直すだけで、あっという間に正しい平均値を算出できるようになりますので、ぜひ最後まで読み進めてみてください。
エクセルで平均が0になる主な原因と基本的なチェックポイント

エクセルで平均を求める「AVERAGE関数」を使用しているのに、結果が0になってしまう場合、そこには明確な理由が隠されています。まずは、なぜエクセルが数値を正しく認識していないのか、その代表的な原因を整理してみましょう。
数値が「文字列」として認識されている
エクセルで平均が0になる最も多い原因は、計算対象の数値が「文字列」として扱われていることです。見た目は数字であっても、エクセルがそれを「文字」だと判断していると、AVERAGE関数はそのセルを計算の対象外として無視してしまいます。
例えば、他のシステムから出力したデータを貼り付けた場合や、数字の前に「’(シングルクォーテーション)」がついている場合にこの現象が起こります。エクセルは文字の平均を出すことができないため、対象となる数値がゼロとみなされ、結果的に平均値も0と表示されるのです。
セルの左上に緑色の小さな三角マーク(エラーインジケーター)が表示されている場合は、文字列として保存されている可能性が非常に高いです。まずはデータの型が正しく「数値」になっているかを確認することが、解決への第一歩となります。
セルの中に「0」が大量に含まれている
計算範囲の中に、意図しない「0」が含まれていることも原因の一つです。AVERAGE関数は、セルに「0」が入っている場合、その「0」も一つのデータとしてカウントし、合計値をデータの個数で割ります。
例えば、10個のセルのうち9個が空欄で、1個だけに「0」が入っている場合、平均は0になります。また、未入力の項目に便宜上「0」を入力している場合も、それらが平均を引き下げる要因となります。
本来は「データがない(空白)」とすべき場所が「0」になっていると、統計的に正しい平均が出せません。計算対象に含めるべきではない0が混ざっていないか、フィルター機能などを使って範囲内のデータを見直してみる必要があります。
範囲指定が間違っている・空の範囲を参照している
単純なミスとして、関数の引数で指定した「範囲」が間違っているケースも少なくありません。本来計算したい列とは別の、何も入力されていない列や行を範囲指定していると、当然ながら平均の結果は0になります。
また、セルの結合を多用しているシートでは、見た目上の範囲と実際のセルアドレスがズレてしまうことがあります。数式バーをクリックして、青い枠線で囲まれた範囲が本当に計算したい場所を指しているか目視で確認しましょう。
特に行や列を挿入・削除した直後は、数式の範囲が自動で調整されず、意図しない場所を参照したままになることがあります。基本に立ち返り、数式内の「A1:A10」といった範囲指定が正しいかを再チェックすることが大切です。
非表示の行やフィルターによる影響
フィルター機能で特定のデータを抽出している場合、AVERAGE関数は「見えていない行」も含めて計算を行ってしまいます。もし非表示になっている部分に0や空白が多いと、期待した数値とは異なる0に近い結果が出ることがあります。
逆に、SUBTOTAL関数やAGGREGATE関数を使用している場合、これらは「表示されているセルのみ」を計算対象にできる便利な関数ですが、設定を誤ると意図しないフィルタリング結果を返してしまいます。
画面上に見えている数字だけを平均したいのか、リスト全体を平均したいのかによって使うべき関数が変わります。現在の計算状況が、フィルターや非表示行の影響を受けていないかを確認してみてください。
数値が「文字列」になっている場合の修正方法

前述の通り、数字が文字として認識されていることが原因で平均が0になるパターンは非常に多いです。ここでは、文字列を数値に変換するための具体的なテクニックをいくつか紹介します。
エラーチェックオプションを使って一括変換する
セルの左上に緑色の三角マークが出ている場合、エクセルが「この数字、文字列になっていませんか?」と警告してくれています。これを利用するのが最も手軽な方法です。
まず、対象となるセル範囲をドラッグして選択してください。すると、選択範囲の横に「!」マークの黄色いアイコンが表示されます。このアイコンをクリックし、メニューの中から「数値に変換する」を選択します。
これにより、一瞬で全てのデータが数値形式に書き換わり、AVERAGE関数の結果が正しく更新されます。大量のデータがある場合でも、範囲選択さえしてしまえば一括で処理できるため、まずはこの方法を試してみるのがおすすめです。
「形式を選択して貼り付け」で数値化する
緑の三角マークが出ていないけれど、なぜか数値として認識されないという場合に有効な裏技があります。それは「1を掛ける」または「0を足す」という計算を無理やり行う方法です。
適当な空いているセルに「1」と入力し、そのセルをコピーします。次に、数値化したい範囲を選択し、右クリックして「形式を選択して貼り付け」を選んでください。貼り付けのオプションで「乗算(かけ算)」を選択してOKを押します。
1. 空のセルに「1」を入力してコピー
2. 文字列の数字範囲を選択
3. 「形式を選択して貼り付け」→「演算」の「乗算」にチェックして実行
文字列の数字に1を掛けると、エクセルは強制的にそれを数値として再評価します。見た目は変わりませんが、中身が完全に数値に変換されるため、平均計算が正しく行われるようになります。
VALUE関数を使って数値を抽出する
元データを書き換えたくない場合は、VALUE関数を使って別の列に数値として取り出す方法があります。例えばA列に文字列の数字が入っている場合、B列に「=VALUE(A1)」と入力します。
VALUE関数は、文字列として入力された数字を数値データに変換してくれる関数です。変換後のB列に対してAVERAGE関数を使えば、正確な平均値を求めることができます。
この方法は、元データが外部システムから自動出力されるもので、直接編集するのが難しい場合に非常に役立ちます。作業用の列を一つ作るだけで解決できる、スマートな対処法と言えるでしょう。
区切り位置指定ウィザードを活用する
大量のデータを一括で数値に変換したい時に、非常に強力なのが「区切り位置」機能です。本来はデータを分割するための機能ですが、データの型を再定義する際にも利用できます。
対象の列を選択し、「データ」タブにある「区切り位置」をクリックします。ウィザードが立ち上がりますが、何も設定を変えずに「次へ」を押し続け、最後の画面で「完了」をクリックするだけです。
これだけで、エクセルが列全体のデータを走査し、数字に見えるものを一斉に数値形式へと変換してくれます。手順が少なく、失敗も少ないため、実務で頻繁に使われるテクニックの一つです。
0を除外して平均を計算する関数の使い方

データの中に本物の「0」が混ざっており、それが平均値を下げてしまっている場合には、計算式自体を工夫する必要があります。0を無視して計算する方法をマスターしましょう。
AVERAGEIF関数で0を無視する
特定の条件に合うデータだけを平均したい時は、AVERAGEIF関数が最適です。これを使えば「0以外の数値だけを対象にする」という指定が簡単に行えます。
数式は「=AVERAGEIF(範囲, “<>0”)」と記述します。「”<>0″」という部分は「0ではない」という意味の条件式です。これにより、セルに0が入っていても、それを除外した平均が算出されます。
テストの点数や売上データなどで、未実施や実績なしの「0」を計算に含めると実態にそぐわない平均になってしまいます。そのような場面では、この関数を使うのが最も標準的で確実な方法です。
AVERAGEIFS関数で複数の条件を指定する
「0を除外したい」かつ「特定のカテゴリーだけ計算したい」といった複数の条件がある場合は、AVERAGEIFS関数を使用します。条件をどんどん追加できるため、より高度な分析が可能です。
例えば、A列が商品名、B列が売上のとき、「商品A」かつ「売上が0ではない」データの平均を出すことができます。数式は「=AVERAGEIFS(B:B, A:A, “商品A”, B:B, “<>0”)」のようになります。
引数の順番がAVERAGEIFとは少し異なり、最初に「平均したい範囲」を指定する点に注意が必要です。複雑な条件を組み合わせることで、データのノイズを取り除いた精度の高い平均値を導き出せます。
AGGREGATE関数でエラーや非表示を回避する
平均が0になる原因が「エラー値が混ざっていること」にある場合、AGGREGATE関数が非常に便利です。この関数は、エラー値や非表示の行を無視して集計を行うことができます。
「=AGGREGATE(1, 6, 範囲)」と入力すると、範囲内のエラーを無視して平均(関数番号1)を計算します。第2引数の「6」がエラー値を無視するというオプションを指しています。
VLOOKUP関数などでエラーが出てしまい、それが原因で平均が出せないとき、エラーを一つずつ直す時間がない場合もあります。そんな時の応急処置としても、また恒久的なエラー対策としても、非常に心強い関数です。
計算結果が正しく表示されない時の設定確認

数式もデータ形式も正しいはずなのに、なぜか結果が0のまま動かない。そんな時は、エクセル自体の設定や特殊なセルの状態を疑ってみる必要があります。
計算方法の設定が「手動」になっていないか
エクセルには、数式の計算タイミングを制御する設定があります。これが「手動」になっていると、データを修正しても計算結果が古いまま(あるいは0のまま)更新されません。
確認するには、「数式」タブの「計算方法の設定」をチェックしてください。ここが「自動」になっていれば問題ありませんが、「手動」になっている場合は「自動」に変更しましょう。
もし設定を変えたくない場合は、キーボードの「F9」キーを押すことで、強制的に再計算を行わせることも可能です。大量のデータを扱う重いファイルでは手動設定にされていることがあるため、注意が必要です。
循環参照が発生していないかチェック
「循環参照」とは、自分自身のセルを計算式に含めてしまうミスです。例えば、A1からA10の平均を出す式をA10のセルに入力してしまうと、エクセルは計算ができず、結果を0として表示することがあります。
循環参照が起きていると、エクセルのウィンドウ下部にあるステータスバーに「循環参照」という警告が表示されます。また、「数式」タブの「エラーチェック」内にある「循環参照」から、原因となっているセルを特定できます。
循環参照は計算の無限ループを引き起こすため、エクセルが安全のために計算をストップさせてしまいます。数式が参照している範囲に、数式自体が入っているセルが含まれていないか、今一度確認してみましょう。
セルの表示形式で「0」が表示されない設定
実際には平均が算出されているのに、見た目だけが0になっている、あるいは0を表示しない設定になっているケースもあります。セルの書式設定を確認してみましょう。
セルのユーザー定義書式で「#」などが使われていると、0の場合に何も表示されなかったり、特定の条件で見え方が変わったりします。また、エクセルのオプションで「ゼロ値のセルにゼロを表示する」のチェックが外れている可能性もあります。
「ファイル」→「オプション」→「詳細設定」の中にある「次のシートで作業するときの表示設定」を確認してください。ここで0の表示設定をコントロールできるため、設定ミスで消えていないかチェックしましょう。
データの型(日付や時刻)による計算のズレ
平均したいデータが「時刻」や「日付」の場合、表示形式が適切でないと正しい平均値が0に見えてしまうことがあります。時刻データはエクセル内部ではシリアル値という小数で管理されています。
例えば、短い時間の平均を求めた際、セルの表示形式が「数値」で小数点以下が表示されない設定だと、0.00…という数値が四捨五入されて「0」に見えることがあります。
この場合は、セルの書式設定を「時刻」や「標準」に戻し、小数点以下の桁数を増やしてみてください。データ自体は正しく計算されていても、見せ方のせいで0だと誤解してしまうパターンは意外と多いものです。
実践的なデータクレンジング術でトラブルを防ぐ

「平均が0になる」というトラブルを未然に防ぐには、入力されたデータをきれいに整える「データクレンジング」の習慣をつけることが重要です。ミスを減らすためのテクニックを紹介します。
不要なスペースや特殊文字を削除する
数字の前後に見えない「スペース(空白)」が入っていると、エクセルはそのセルを文字列として認識してしまいます。特にWebサイトや他のソフトからコピーしたデータに多く見られます。
TRIM関数を使うと、文字の前後にある余計なスペースを簡単に取り除くことができます。「=TRIM(A1)」のようにしてデータを取り出し、それを数値に変換すれば、汚れのないきれいなデータになります。
また、目に見えない制御文字が混入している場合は、CLEAN関数を併用するのも有効です。計算エラーを防ぐためには、まず「データに余計なものがついていないか」を疑う姿勢が大切です。
全角数字を半角数字に統一する
エクセルにおいて、全角の数字(1、2、3など)は「文字列」として扱われます。これらが計算範囲に混ざっていると、AVERAGE関数はそれらを無視し、平均が正しく出ない原因となります。
全角数字を半角に直すには、ASC関数が便利です。「=ASC(A1)」と入力すれば、全角の数字やアルファベットを一括で半角に変換してくれます。
日本国内の業務では、手入力によって全角と半角が混在してしまうことがよくあります。集計を行う前にASC関数で半角に統一しておくことで、計算ミスを大幅に減らすことができます。
置換機能で不要な単位や文字を一掃する
「1,000円」や「100個」のように、数字の後に単位が入っているセルは、エクセルでは「文字」とみなされます。これでは平均計算ができません。置換機能を使って単位を取り除きましょう。
「Ctrl + H」キーを押して置換ダイアログを開き、「検索する文字列」に「円」や「個」を入力します。「置換後の文字列」は空欄のままにして「すべて置換」を実行します。
これで数字だけの状態になります。単位を表示させたい場合は、セルの中身に直接書くのではなく、「セルの書式設定」の「ユーザー定義」から「# “円”」のように設定するのがエクセルの正しい使い方です。
テーブル機能を使ってデータ範囲を自動更新する
データの追加や削除が頻繁にある場合、計算範囲の指定ミスを防ぐために「テーブル機能」を活用するのがおすすめです。範囲をテーブル化すると、データが増えても平均の計算範囲が自動で追いかけてくれます。
データ範囲を選択して「Ctrl + T」を押すだけでテーブル化できます。その後、数式で「=AVERAGE(テーブル1[売上])」のように列名で指定すれば、範囲がズレる心配がなくなります。
手動で「A1:A100」のように指定していると、101行目にデータを入れた時に計算から漏れてしまいます。これが積み重なると、実態と乖離した「0に近い平均」を生む原因になるため、テーブル化は非常に有効な予防策です。
エクセルで平均が0になる問題を解消するためのポイントまとめ
エクセルで平均が0になる問題は、その多くがデータの形式や関数の使い分けといった、基本的なルールの不一致から生じています。最後に、これまでの内容を振り返り、解決のためのチェックリストを確認しましょう。
まず、最も疑うべきは「数値が文字列になっていないか」という点です。左上の緑のマークを確認したり、区切り位置指定ウィザードを使ったりして、データを正しい数値形式に変換してください。
次に、データの中に含まれる「0」の扱いを検討しましょう。0を除外して計算したい場合は、AVERAGEIF関数を使うのが鉄則です。空欄と0が混同されていないか、元データの入力ルールも見直してみることが重要です。
計算が動かない場合は、エクセルの「計算方法の設定」が手動になっていないか、あるいは「循環参照」が発生していないかを確認してください。設定一つで、表示が劇的に改善されることもあります。
最後に、日頃からTRIM関数やASC関数を使ってデータをクレンジングし、テーブル機能を活用することで、計算ミスが起こりにくい環境を整えましょう。これらのポイントを意識するだけで、エクセルの集計作業の精度とスピードは格段にアップします。
トラブルの原因を一つずつ切り分けて対処すれば、必ず正しい平均値にたどり着けます。今回紹介した方法を、ぜひ日々の業務に役立ててください。



