Excelで数式を入力したときに、
突然「#N/A
」「#NAME?
」「#REF!
」といった見慣れない記号が表示されて驚いたことはありませんか?
これらはすべて、Excelが「正しく計算できない」ときに表示する“エラー値”です。
一見するとトラブルのように思えますが、意味を知っておくことで原因の特定や修正がとてもスムーズになります。
たとえば、
-
関数名のスペルミスで
#NAME?
エラーが出る -
VLOOKUPで値が見つからないと
#N/A
になる -
削除したセルを参照して
#REF!
になる
といったように、それぞれのエラーには明確な原因があります。
本記事では、Excelでよく見かけるエラーの種類・原因・対処法をわかりやすくまとめました。
「非表示にしたい」「分岐で処理を分けたい」といったニーズにも対応していますので、ぜひ参考にしてみてください。
エラー値とは?「#〇〇!」の意味と正体
Excelで数式を入力したときに表示される #REF!
や #N/A
、#NAME?
といった記号は、**「エラー値(エラーメッセージ)」**と呼ばれるものです。
一見すると「何か壊れたのでは…?」と不安になるかもしれませんが、実はこれはExcelからの“お知らせ”。
数式や参照先に問題があると、Excelはそれを数値ではなくエラーとして表示することで、原因に気づかせてくれているのです。
エラーは「計算できない」という意思表示
エラー値が出る主な理由は、以下のようなものです:
-
指定したセルが存在しない
-
関数の名前や引数が間違っている
-
数値の計算条件が不適切(ゼロ割りや型の不一致など)
これらの状況では、Excelは無理に処理せず「このままでは答えが出せません」という意味で #〇〇!
という記号を返します。
よくある誤解:「見た目が変だから焦る」
たしかに、セルに #REF!
や #VALUE!
と表示されると、エラーが起きているように見えます。
しかし、こうした記号はExcelが異常を知らせる“ヒント”のようなもの。
原因と意味を知っていれば、冷静に対処できるようになります。
次章では、実際に頻出するエラーとその原因・直し方を具体的に見ていきましょう。
よくあるエラーと原因・対処法
ここでは、Excelでよく表示される代表的なエラー値について、
それぞれの意味・発生する原因・具体的な対処法をわかりやすく解説します。
#NAME?
エラーの原因と対処法【「name エラー」対策】
意味:関数名や名前定義が正しく認識されていないときに表示
主な原因:
-
関数名のスペルミス(例:
=VLOKUP()
) -
「名前付き範囲」が定義されていない
-
文字列を引用符(”)で囲んでいない(例:
=IF(A1=テスト,1,0)
)
対処法:
-
関数名のスペルを正確に入力する
-
名前付き範囲が存在するか確認する(数式→名前の管理)
-
文字列には必ず
"テスト"
のようにダブルクォーテーションをつける
#N/A
エラーとは?非表示にする方法も解説【「n a」「n a 表示しない」「na 判定」対策】
意味:VLOOKUPやMATCH関数で値が見つからないときに表示
主な原因:
-
検索対象のデータが表内に存在しない
-
表の参照列が正しく指定されていない
-
全角/半角、スペース違いなどで一致しない
対処法:
-
データを見直し、一致するかどうか確認
-
IFNA()
関数でエラー時に代替表示(例:=IFNA(VLOOKUP(...), "")
)
-
ISNA()
関数でエラーの有無を判定し、条件分岐も可能
#REF!
参照エラーの意味と直し方
意味:存在しないセルやシートを参照している
主な原因:
-
行や列を削除したあとに関数が元の参照位置を失っている
-
関数で指定したセルが削除済み
-
シート名の変更や削除
対処法:
-
数式バーで参照先を確認し、再指定または修正
-
行や列の削除前に、参照セルが使われていないか確認
[数式]→[ワークシート内の分析]→[参照先の手レース]メニューを選択すると削除予定のセルが参照されているかを矢印で表示することができます。
※矢印を非表示にするには[トレース矢印の削除]メニューを選択します。
-
INDIRECT関数で参照を文字列化すればエラー回避も可能(ただし別ファイルには非対応)
INDIRECT関数については以下の記事をご参考ください。
→エクセルのINDIRECT関数とは?参照先を文字列で指定する使い方と注意点まとめ
#VALUE!
/#DIV/0!
/#NUM!
の違いと対策
エラー | 意味 | 主な原因 | 対処法 |
---|---|---|---|
#VALUE! |
計算に適さない値がある | 数値に文字列を足そうとしているなど | データの型を確認する |
#DIV/0! |
0で割ろうとした | 分母が0または空白 | IF(B1=0,"",A1/B1) のように条件分岐 |
#NUM! |
数値が不正または範囲外 | マイナスの平方根や桁数オーバー | 入力値・関数の引数を確認 |
#NULL!
エラーと「空白セル」の違い【「null 判定」に注意】
意味:セル範囲の指定に誤りがある(スペースによる曖昧な指定)
主な原因:
-
2つの範囲を区切る記号にスペースを使ってしまった(
A1 A2
)
対処法:
-
セル範囲には「:(コロン)」や「,(カンマ)」を使用する
-
ISBLANK()
関数は「空白セルかどうか」を判定する関数で、#NULL!
とは別物
エラーを制御・非表示にする便利な関数
Excelでは、エラーが出たときに見た目を整えたり、処理を分岐させたりするための関数がいくつか用意されています。
「エラーが出ていても空欄にしたい」「別の値を表示させたい」など、実務で役立つ関数をまとめてご紹介します。
IFERROR
関数:すべてのエラーに対応できる万能型
特徴:
-
どんなエラー(
#REF!
、#DIV/0!
、#N/A
など)でも対応可能 -
エラー発生時に「空欄」や「特定の文字列」を表示できる
例:
→ B1が0だった場合は "計算不可"
を表示
IFNA
関数:#N/A
専用の分岐関数
特徴:
-
#N/A
だけを対象にできる -
VLOOKUP
やMATCH
関数とセットで使われることが多い
例:
→ 見つからなかった場合に "未登録"
と表示
ISERROR
/ ISERR
/ ISNA
関数:エラーを検出するための論理関数
関数 | 対象エラー | 主な使い方 |
---|---|---|
ISERROR() |
すべてのエラー | IF(ISERROR(...), ..., ...) で分岐 |
ISERR() |
#N/A 以外のすべて |
#N/A を許容したいときに |
ISNA() |
#N/A のみ |
IF(ISNA(...), ..., ...) で条件対応 |
例:ISNA
で #N/A
判定
→ データが見つからないときは「なし」と表示される
実務での使い分けポイント
-
とりあえず何でも制御したい →
IFERROR
-
VLOOKUPやMATCHに限定した対処 →
IFNA
-
より柔軟に条件を分けたい →
IS~
系関数
エラーを“消す”のではなく、“制御する”ことで、ミスに気づきやすくなる効果もあります。
うまく使い分けて、見やすく・使いやすいシートを作成しましょう。
まとめ|エラーの意味を知ればExcelはもっと使いやすくなる
Excelで表示される #NAME?
や #N/A
などのエラー値は、一見すると戸惑うかもしれませんが、
実は**「ここに問題がありますよ」というExcelからの親切なサイン**です。
本記事のおさらい
-
エラー値はすべて意味があり、原因が明確に存在する
-
#NAME?
は関数名や名前定義のミス -
#N/A
は検索でデータが見つからなかったとき -
#REF!
は削除されたセルやシートを参照しているときに発生
エラーを「隠す」のではなく「理解して活かす」
-
IFERROR
やIFNA
を使えば、エラー時の表示をコントロール可能 -
ISNA
などの判定関数で処理を分岐することもできる -
ただ見た目を消すだけでなく、原因を理解することで作業の精度が上がります
「意味がわかれば、対処できる」
それがExcelエラー対応の基本です。
本記事が、日々のExcel作業の安心材料となれば幸いです。