【Excel】#N/A・#VALUE!などエラー表示の意味と直し方まとめ|9種類を一覧で解説

Excelのエラー表示9種類 意味と直し方まとめ Excel

Excelで数式を入れたら、セルに「#N/A」や「#VALUE!」のような見慣れない表示が出てしまった…という経験はありませんか。

  • ・「#」で始まるエラーが出たけど、何が悪いのか分からない
  • ・エラーの種類が多すぎて、どれがどれだか覚えられない
  • ・エラーが混ざった表を、とりあえず合計したい

エラーの表示は、Excelが「この数式のここがおかしいよ」と教えてくれる合図です。種類ごとに原因がほぼ決まっているので、表示を見れば、どこを直せばいいかの見当がつきます。この記事では、よく出る9種類のエラーの意味と直し方を一覧でまとめます。

エラーの種類と意味の早見表

表示ひとことで言うとまず確認するところ
#DIV/0!0(または空白)で割り算している分母となるセル
#N/A探している値が見つからないVLOOKUP・XLOOKUPなどの検索値
#VALUE!計算できない種類のデータが混ざっている文字・スペースの入ったセル
#REF!参照先のセルがなくなった削除した行・列
#NAME?Excelが知らない言葉が数式にある関数名のつづり・「”」の付け忘れ
#NUM!数値がおかしい・大きすぎる引数の数値
#NULL!2つの範囲に重なりがない範囲の区切り(「,」と「:」)
#SPILL!結果を広げる先にデータがある数式の下や右のセル
#####列の幅が足りない列の幅・マイナスの日付

エラーごとの原因と直し方

#DIV/0!:0や空白のセルで割っている

数値を0で割ったとき、または空白のセルで割ったときに出ます。前年比や達成率の表で、分母のデータがまだ入っていない行などで起きることがあります。分母のセルを確認し、データがまだない行は、次のようにIF関数で「分母が空白・0なら空欄にする」と書いておくと表示されなくなります。

=IF([分母],[分子]/[分母],"")

#N/A:探している値が見つからない

VLOOKUPやXLOOKUPなどの検索で、探している値が見つからないときに出ます。まずは検索値が本当に元の表にあるかを確かめましょう。見た目は同じなのに見つからない場合は、次の2つが考えられます。

  • 数値と文字列が食い違っている:片方が数値、もう片方が文字列として入っていると一致しません。データの種類をそろえます。
  • 前後に余分なスペースがある:TRIM関数で前後のスペースを取り除いてから検索します。

検索の関数の使い方はXLOOKUPとVLOOKUPの違いと使い方で紹介しています。

#VALUE!:計算できないデータが混ざっている

足し算・かけ算をしようとしたセルに、文字や目に見えないスペースが入っていると出ます。数値に見えても、実は文字として入っている日付が原因のこともあります。

「=A2+B2+C2」のように「+」でつないでいる場合は、=SUM(A2:C2)のように関数に置き換えると、文字の入ったセルを飛ばして計算できることがあります。うまくいかないときは、参照しているセルにスペースや文字が入っていないかを確かめましょう。

#REF!:参照先のセルがなくなった

数式が参照していた行や列を削除したときに出ます。削除した直後なら、「Ctrl」+「Z」ですぐに元に戻せます。ほかに、次のような場合にも出ます。

  • VLOOKUPの「列番号」が、検索範囲の列数より大きい
  • INDIRECT関数で、閉じているブックを参照している(INDIRECT関数の使い方)

「=SUM(B2,C2,D2)」のように1つずつ指定するより、=SUM(B2:D2)のように範囲で指定しておくと、途中の列を削除しても数式が自動で調整されるので、このエラーを防げます。

#NAME?:Excelが知らない言葉が数式にある

数式の中に、Excelが理解できない言葉があるときに出ます。よくある原因は次の4つです。

  • 関数名のつづり間違い(例:SUMをSUNと入力)
  • 文字列を「”」(ダブルクォーテーション)で囲んでいない
  • 名前の定義で付けていない名前を使っている
  • 範囲の「:」(コロン)が抜けている(例:B2B12)

関数名を入力するときは、入力の途中で出てくる候補から選ぶと、つづり間違いを防げます。ChatGPTなどのAIに作ってもらった数式でこのエラーが出るときは、ChatGPTに作ってもらったExcel関数がエラーになる原因と直し方もあわせて確認してみてください。

#NUM!:数値がおかしい・大きすぎる

関数に渡した数値が正しくないとき、または計算結果がExcelで扱える範囲を超えるほど大きい・小さいときに出ます。「$1,000」のように記号付きで数値を入力していると起きることがあるので、引数には「1000」のように数字だけを入れましょう。

#NULL!:2つの範囲に重なりがない

Excelでは、2つの範囲の間にスペースを入れると「重なっている部分」という意味になります。重なりがない範囲をスペースでつなぐと、このエラーになります。範囲を並べて指定したいときは「,」(カンマ)で区切りましょう。

=SUM(C2:C3,E4:E6)

#SPILL!:結果を広げる先にデータがある

UNIQUE関数やSORT関数など、結果を複数のセルに広げる(スピルする)数式で、広げる先のセルにデータが入っていると出ます。エラーのセルを選ぶと、結果が広がる予定の範囲が点線で表示されるので、その中のデータを削除するか別の場所に移しましょう。結合されたセルやテーブルの中でも、このエラーになることがあります。

#####:列の幅が足りない

エラーというより、列の幅が狭くて中身を表示しきれていない状態です。列見出しの右の境界線をダブルクリックすると、列の幅が中身に合わせて自動で広がります。広げても消えないときは、マイナスの日付や時刻になっていないかを確認しましょう。

エラーとうまく付き合うための3つの方法

IFERROR関数でエラーの代わりに別の表示にする

エラーになったときだけ、代わりに「0」や空欄を表示させたいときはIFERROR関数を使います。

=IFERROR([元の数式],"")

ただし、IFERROR関数はどんな種類のエラーもまとめて隠してしまうので、本当は直すべき間違いまで見えなくなります。まず原因を確かめて、数式が正しく動いていると分かったうえで使いましょう。

エラーが混ざった範囲を合計するならAGGREGATE関数

エラーが1つでも入っている範囲をSUM関数で合計すると、結果もエラーになります。エラーを飛ばして合計したいときは、AGGREGATE関数が使えます。1つ目の「9」が「合計」、2つ目の「6」が「エラー値を無視する」という意味です。

=AGGREGATE(9,6,[合計したい範囲])

こちらも、エラーを「無視している」だけで直しているわけではありません。合計に入るはずの数値が抜けていないか、エラーの原因は別に確認しておきましょう。

「数式の検証」でどこがおかしいかを1ステップずつ確かめる

長い数式のどこでエラーが起きているのか分からないときは、「数式の検証」が便利です(Windows版のExcel)。エラーのセルを選び、「数式」タブの「数式の検証」を押すと、数式を少しずつ計算した途中の結果を確認できます。

「数式の検証」を押して開いた「数式の計算」画面で、途中の計算が「"80"/""」になっているところ

この例では、達成率の数式「=B2/C2」が#VALUE!になっています。検証してみると、途中の計算が「”80″/””」と表示され、売上(B2)の80も、空白に見える目標(C2)も、数値ではなく文字として入っていることが分かります。このように、見た目では分からない原因を見つけられるのが「数式の検証」の便利なところです。

エラー表示が出ないのにおかしいときは

「#」のエラーは出ないのに、数式が思ったとおりに動かないこともあります。よくある症状は、個別の記事で詳しく解説しています。

数式が計算されず、そのまま文字で表示される

「エクセルの数式がそのまま表示されて計算されない…」を解決!=が文字列になる原因と直し方
エクセルで数式がそのまま表示されて計算されない時によくある3つの原因(文字列の書式・数式先頭のアポストロフィ・数式の表示モード)と、それぞれの見分け方・直し方をわかりやすく解説します。

元のデータを変えても、計算結果が変わらない

エクセルの数式が自動で計算されない原因は?「手動計算」モードの直し方
エクセルで数式を書き換えても計算結果が更新されないのは「手動計算」モードが原因かもしれません。ステータスバーでの見分け方、自動計算に戻す設定手順、F9キーの使い方まで解説します。

別のシートの内容が反映されない

エクセルで別シートの内容が反映されない…原因と直し方まとめ
Excelで別シートの内容が反映されない、数式がそのまま文字列で表示される…よくある3つの原因と、それぞれの直し方をまとめました。

まとめ

  • 「#」のエラーは、Excelが数式のおかしいところを教えてくれる合図。種類で原因の見当がつく
  • よく出るのは、#DIV/0!(0で割った)・#N/A(見つからない)・#VALUE!(文字が混ざっている)・#REF!(参照先が消えた)・#NAME?(つづり間違い)
  • #####はエラーではなく、列の幅が足りないだけ
  • IFERROR関数やAGGREGATE関数はエラーを「隠す・飛ばす」もの。先に原因を確かめてから使う
  • どこがおかしいか分からないときは「数式の検証」で1ステップずつ確かめる
タイトルとURLをコピーしました