本文へスキップ
totonoe.tech
Excel整形

Excelの #VALUE!・#REF!・#DIV/0!・#NAME? の原因と直し方

Excelの4大エラーを、原因と最初に見る場所で整理します。#DIV/0!は割る数が0か空白、#REF!は参照先の削除、#VALUE!は文字列の混入、#NAME?は名前の打ち間違いです。IFERRORで隠す前に原因を確かめる手順を、Microsoftのサポート情報をもとに解説します。

この記事のポイント

  • #DIV/0!は割る数が0か空白、#REF!は参照先の削除が原因
  • IFERRORは全部のエラーを隠すので、原因を直す前に使うと見逃す
  • 「Excelエラー辞典を整える」でエラー別の原因と直し方を引ける
Q.
ExcelのIFERRORでエラーを消してよい?
A.
原因を確かめたあとなら使えます。IFERRORは#DIV/0!も#REF!も#VALUE!も同じように隠すので、先に使うと本当の誤りに気づけなくなります。まずエラーの種類から原因を探し、直せない場合だけ使います。
この記事の作業は、無料のツールでそのままできます(入力は送信されません) Excelエラー辞典を整える #N/Aや#REF!の意味と直し方が、再現デモで分かる 開く

Excelのセルに「#」で始まる記号が出たとき、何が悪いのかを一目で言える人は多くありません。エラーの種類ごとに、原因はほぼ決まっています。

結論を先に書きます。

#DIV/0!は割る数が0か空白、#REF!は参照していたセルや行・列の削除、#VALUE!は計算できない文字列の混入、#NAME?は関数名や名前の打ち間違いです。 エラー表示は、どこを見ればよいかを教えてくれる手がかりです。IFERROR関数で隠す前に、まずこの手がかりから原因を探します。

この記事の内容は、Microsoftサポートの各エラーの解説(2026年9月時点)をもとにしています。VLOOKUPの #N/A は別に VLOOKUPの#N/A、犯人はほぼこの4つ で整理しているので、ここでは扱いません。


4つのエラーの早見表

エラー意味主な原因最初に見る場所
#DIV/0!0で割った割る数が0、または空白のセル割り算の分母のセル
#REF!参照が無効参照先のセル・行・列を削除した数式の中の「#REF!」の位置
#VALUE!値の型が違う計算できない文字列が混ざっている数式が参照している各セルの中身
#NAME?名前が分からない関数名・定義した名前の打ち間違い、引用符の漏れ数式の関数名と、文字列を囲む「”」

#DIV/0!:割る数が0か空白

Microsoftのサポートによると、#DIV/0!は「=5/0」のような式を入れたとき、または0や空白のセルを数式で参照したときに出ます。

典型例は、売上÷件数で件数のセルが空欄のとき、前年比を出す列で前年が0のときなどです。

セル内容
A21200
A3(空白)
B2=A2/A3 → #DIV/0!

直し方は、割る数が0や空白にならないようにすることです。それでも空白の行が出る表では、Microsoftが示すIF関数で、分母があるかを先に判定します。

  • =IF(A3,A2/A3,0) :A3が0や空白なら0を返す
  • =IF(A3,A2/A3,"") :A3が0や空白なら空白を返す
  • =IFERROR(A2/A3,0) :エラーになったら0を返す

「0を返す」と「空白を返す」では、あとの集計が変わります。0を返すと平均の計算に0として入りますが、空白は計算に入りません。目的に応じて選びます。

#REF!:参照先を消してしまった

#REF!は、数式が参照していたセルがなくなったときに出ます。Microsoftのサポートに載っている例では、=SUM(B2,C2,D2) と書いていて列Cを削除すると、数式が =SUM(B2,#REF!,D2) に変わります。

直し方は3つです。

  1. 削除した直後なら、Ctrl+Zで元に戻す
  2. 戻せないときは、数式の「#REF!」の部分を、正しいセルの参照に書き直す
  3. 今後のために、=SUM(B2:D2) のように範囲で書いておく

VLOOKUP関数で、範囲より大きい列番号を指定したときにも #REF! が出ます。Microsoftの例では、=VLOOKUP(A8,A2:D5,5,FALSE) は範囲が4列しかないのに5列目を求めているため、エラーになります。範囲を広げるか、列番号を範囲内に直します。INDEX関数も同じで、=INDEX(B2:E5,5,5) は4行4列の範囲に5行5列目を求めているので、範囲外です。

#VALUE!:計算できない文字列が混ざっている

#VALUE!は、数値として計算できない値が数式に入っているときに出ます。原因は、Microsoftのサポートでは次のように分けられています。

原因例対処
見えないスペースが入っている数字の前後にスペースがある検索と置換でスペースを削除する
文字列として保存された数字先頭にアポストロフィがある「区切り位置」機能などで形式を直す
演算子で足している=A2+B2+C2 に文字列のセルが含まれる=SUM(A2:C2) のように関数を使う
日付が文字列になっている=E10-D10 の日付が文字列DATE関数で日付に直す

演算子の足し算は文字列があるとエラーになりますが、SUM関数は文字列を無視して計算します。たとえばA2に「1,200円」のように単位が付いた文字列が入っていると、=A2*2 は #VALUE! になりますが、SUM関数ではそのセルが無視されるだけで、合計に入りません。エラーが消えても、合計が足りなくなる点には注意が必要です。

#NAME?:名前を打ち間違えた

#NAME?は、Excelが数式の中の名前を認識できないときに出ます。Microsoftのサポートによると、原因は主に次のとおりです。

  • 関数名の打ち間違い(もっとも多い原因)。関数名の入力中に出る候補を使うと防げる
  • 定義していない名前を使っている(=SUM(Profit) で「Profit」が未定義)
  • 定義した名前のつづりを間違えている
  • 文字列を「“」で囲んでいない(=CONCATENATE("has") が正しく、=CONCATENATE(has) はエラー)
  • 範囲のコロンを抜かしている(=INDEX(B2:B12) が正しく、=INDEX(B2 B12) はエラー)
  • 必要なアドインが無効になっている

IF関数で文字列を比べるときに、=IF(A1=合格,"○","×") と、「合格」を「“」で囲まないと、#NAME? になります。=IF(A1="合格","○","×") のように囲みます。IF関数の組み立ては IF関数を整える で、入力欄を埋めるだけで作れます。

IFERRORで隠す前に原因を見る

IFERRORは、数式がどのエラーになっても、指定した値に置き換える関数です。便利ですが、#DIV/0!も#REF!も#VALUE!も#NAME?も、同じように隠してしまいます。

たとえば =IFERROR(A2/A3,0) と書いておくと、A3が空白でも0が表示されます。ところが、本当は割る数のセルを削除していて #REF! になっていた場合でも、0と表示されてしまい、誤りに気づけません。

次の順番で使うと、見逃しを減らせます。

  1. エラーの種類を確認する
  2. 原因を直せるなら、先に直す
  3. 空欄が正しい状態(分母が空の行がある表など)のときだけ、IF関数かIFERRORで表示を整える

IFERRORの代わりに、エラーごとに条件を分けたIF関数を使うと、想定外のエラーを隠さずに済みます。たとえば =IF(A3=0,"",A2/A3) なら、A3が0のときだけを空白にし、A3が #REF! なら、そのままエラーが出て気づけます。

まとめ

#DIV/0!は割る数が0か空白、#REF!は参照先の削除、#VALUE!は文字列の混入、#NAME?は名前の打ち間違いが原因です。IFERRORは、どのエラーも同じように隠すので、原因を確かめてから使います。

エラーの意味と直し方を、再現デモで確かめたいときは Excelエラー辞典を整える が使えます。数式の組み立ては IF関数を整える で試せます。

運営サイト

私たちが運営するサイト