Excel関数エラーの原因と直し方 |#VALUE!・#REF!・#N/AをIFERRORで解決

スポンサーリンク
スポンサーリンク

Excelで数式を組んでいるとき、突然「#VALUE!」や「#REF!」が表示されて、何が起きたのか分からず手が止まった経験はありませんか?

 

この記事では、まず症状別にエラーの原因と直し方を確認したうえで、IFERROR関数を使ってエラー表示そのものを整える方法までを1本にまとめました。

スポンサーリンク

Excelの主要エラー一覧|まず記号の意味を確認

Excelのエラーは、表示される記号によって原因のカテゴリがある程度決まっています。先に一覧で全体像を把握しておくと、自分の症状がどれに当てはまるかすぐに判断できます。

 

エラー表示 意味 よくある原因
#VALUE! 値の型が合わない 文字列(空文字・単位付き数値)を四則演算しようとしている
#REF! 参照先が存在しない 参照していたセル・行・列が削除された
#NAME? 関数名・名前が認識できない 関数名のスペルミス、または未対応バージョンの関数
#DIV/0! 0(または空白)で割り算している 達成率・単価計算などで分母が0のセルがある
#N/A 検索値が見つからない VLOOKUPなどでリストに該当がない
#NUM! 数値が計算範囲外 SQRT関数に負の数を入れたときなど
#NULL! 範囲の交差が存在しない カンマを忘れてスペースで範囲を区切っている

 

それぞれの原因と直し方を、次の章で詳しく見ていきましょう。

スポンサーリンク

症状別|Excel関数エラーの原因と直し方

#VALUE! ―― 値の型が合わないエラー

#VALUE!は、Excelで最も頻繁に見かけるエラーです。数値ではない文字列に対して「+」などの演算子で計算しようとすると発生します。

 

たとえば、IF関数の結果として返ってきた「空文字(””)」や、「300円」のように単位付きで入力された数値を「+」で足し算しているケースがよくあります。

 

#VALUE! ―― 発生パターンと直し方

❌ エラーになる書き方
=A1+B1
B1が空文字や「300円」のような単位付きだと#VALUE!になる
✅ 解決策:SUM関数に置き換える
=SUM(A1,B1)
SUM関数は文字列や空文字を無視して計算してくれる
単位が混入している場合は、置換機能(Ctrl+H)で「円」などの文字を空白に置換してから計算するのが根本解決です。

 

日付どうしの引き算で#VALUE!が出る場合は、片方が「文字列としての日付」になっている可能性があります。

 

対象セルで=ISNUMBER(A1)と入力し、FALSEが返れば文字列と判定できるので確認してみてください。

#REF! ―― 参照先が消えたエラー

#REF!は、数式が参照していたセルや行・列が削除・移動されたときに発生します。

 

B列を参照する数式がある状態でB列ごと削除すると、その数式は即座に#REF!になります。

 

🔧
#REF! エラー ―― 修正の手順
STEP 1
削除直後なら「Ctrl + Z」で元に戻す
STEP 2
元に戻せない場合はCtrl+Hを開き「#REF!」で検索
STEP 3
該当セルを特定し、正しい参照先に手動で修正

 

OFFSET関数やINDIRECT関数のように、参照先を動的に生成する関数も、起点セルがずれると#REF!になりやすい点に注意してください。

 

また、別シートに数式をコピー&ペーストしたときに#REF!が出る場合は、コピー先のセル位置によって「相対参照」がシートの外にはみ出してしまったことが原因のケースがほとんどです。

 

コピー元の数式でF4キーを押して絶対参照($A$1形式)に変えてからコピーすると防げます。

#NAME? ―― 関数名・名前が認識されないエラー

#NAME?は、Excelが関数名や名前付き範囲を認識できないときに出ます。原因は主に3つです。

 

原因 具体例 対処法
関数名のスペルミス・全角入力 =SUM(A1:A10) / =SUMF(A1:A10) 半角に直す・関数名を確認する
名前付き範囲の削除 数式内で使っていた「売上合計」などの名前が消えた 「数式」タブ→「名前の管理」で存在確認
関数がバージョン未対応 XLOOKUP・IFSなど新しい関数 下記を参照

 

取引先から受け取ったファイルで#NAME?が出る場合、相手が新しいバージョンの関数を使っている可能性があります。

 

ここは意外と誤解されやすいのですが、XLOOKUPはExcel 2021(Microsoft 365含む)以降でしか使えず、Excel 2019やそれ以前では#NAME?になります

 

一方でIFS関数はExcel 2019から標準搭載されているため、相手も自分もExcel 2019以降であればIFSでは問題は起きません。

 

#NAME?が出た場合は、まず「どちらの関数が使われているか」「自分のExcelのバージョンはいくつか」を確認するのが近道です。

 

自分側では直せないため、相手にVLOOKUPやIF関数など古いバージョンでも動く書き方への変更を依頼する必要があります。

 

XLOOKUPへの移行を検討している方は、XLOOKUPとVLOOKUPの違いを徹底比較|どっちを使えばいい?【2026】もあわせてご覧ください。

#DIV/0! ―― 0で割り算しているエラー

売上達成率や単価計算など、割り算を使うシートで頻繁に発生します。

 

分母のセルが0または空欄のときに起こり、シートの見た目が崩れてしまいます。

 

根本的な対処は「分母が0にならないよう入力ルールを見直す」ことですが、表示だけ整えたい場合はこのあと紹介するIFERROR関数が有効です。

#N/A ―― 検索値が見つからないエラー

VLOOKUPやXLOOKUPで、検索値が参照先のリストに存在しないときに出ます。

 

件数が多い一覧で#N/Aが出る場合、検索値の末尾に半角スペースが混入していることが原因の大半です。

 

=TRIM(検索値)で余分なスペースを除去してから検索すると解決できるケースが多くあります。

#NUM!・#NULL!(補足)

#NUM!は、SQRT関数に負の数を入れるなど、計算結果が数値として成立しない場合に出ます。

 

#NULL!は、本来カンマで区切るべき範囲指定をスペースで区切ってしまい、交差しない2つの範囲を指定した状態になっていることが原因です。

 

どちらも発生頻度は低いため、まずは数式の引数を見直せば大半は解決します。

スポンサーリンク

エラーを「消す」正しい書き方|IFERROR関数の基本

ここからは、エラーを整えて表示するためのIFERROR関数を解説します。

 

IFERROR関数の構文

=IFERROR(, エラーの場合の値)
第1引数|値
チェックしたい数式。エラーでなければ結果がそのまま表示される。
第2引数|エラーの場合の値
エラー時に表示する値。「””」「0」「任意の文字」を自由に設定できる。

 

大きな特徴は、#N/A・#VALUE!・#REF!など、これまで紹介したすべてのエラー値を1つの関数でまとめて処理できる点です。第2引数の書き方によって、表示のパターンが変わります。

 

目的 書き方 補足
エラーを空白にする =IFERROR(A1/B1, "") 見た目はスッキリするが、AVERAGE等の集計に影響する場合がある(後述)
エラーを文字に置き換える =IFERROR(VLOOKUP(D2,A:B,2,0), "未登録") 「該当なし」「−」など用途に合わせて変更可能
エラーを0にする =IFERROR(A1/B1, 0) 後からSUM等で合計する場合はこちらが安全

 

⚠️ 注意点
エラーを0や空白にすると、数式そのものの間違いまで隠れてしまうことがあります。まずはIFERRORを外した状態で数式単体をテストし、正しく動くことを確認してから囲むのが基本です。
スポンサーリンク

実務で使えるIFERROR活用パターン4選

① VLOOKUP + IFERROR(XLOOKUPなら不要)

IFERRORとの組み合わせで最も多いのが、VLOOKUPとの連携です。

 


IFERROR + VLOOKUP の修正前・修正後
❌ 修正前
=VLOOKUP(D2, A:B, 2, 0)
→ 商品Xが無いと #N/A が表示される
✅ 修正後
=IFERROR(VLOOKUP(D2,A:B,2,0), “未登録”)
→ 商品Xが無いと「未登録」と表示される

💡

XLOOKUPなら不要
XLOOKUP関数は第4引数に「見つからない場合」の処理が標準で組み込まれています。=XLOOKUP(D2, A:A, B:B, "未登録")と書けるため、IFERROR不要です。ただしExcel 2021以降限定の点に注意してください。

 

VLOOKUPのエラーをさらに詳しく調べたい場合は、VLOOKUPエラーの原因と直し方|#N/A・結果が0・コピーでズレる対処法もご覧ください。

② IFとIFERRORを組み合わせる

「エラーのときは空白、値があれば○か×を表示したい」ような場面では、IFの外側をIFERRORで囲むのが基本の書き方です。

 

=IFERROR(IF(C2>=B2, "達成", "未達"), "−")
IFより先にエラーをキャッチできるため、安全に条件分岐を組めます。

③ エラーを除外して合計する

範囲内にエラーが含まれていると、SUMの結果まで#N/Aなどのエラーになってしまうことがあります。

 

=SUM(IFERROR(A1:A10,0))のような書き方は、Microsoft 365など配列を自動処理できる環境ならそのまま動きますが、古いバージョンではCtrl+Shift+Enterで配列数式として入力しないと正しく計算されません

 

バージョンを気にせず安全にエラーを無視して合計するには、AGGREGATE関数がおすすめです。

=AGGREGATE(9, 6, A1:A10)
「9」はSUM(合計)、「6」はエラー値を無視するオプションです。どのバージョンでも安全に集計できます。

④ IFERRORを2重にネストする(応用)

「1つ目の表で見つからなければ別の表から探す」ように、複数の参照先を順番に試したい場合はIFERRORのネストが使えます。

 

=IFERROR(VLOOKUP(D2, A:B, 2, 0), IFERROR(VLOOKUP(D2, E:F, 2, 0), "未登録"))
第1のVLOOKUPがエラーなら第2のVLOOKUPを試し、両方ヒットしなければ「未登録」を表示します。3重以上になると読みにくくなるため、その場合はXLOOKUPへの切り替えを検討してください。
スポンサーリンク

IFERROR・ISERROR・IFNAの使い分け

似た名前の関数が複数あるため混乱しやすいポイントです。役割を整理しておきましょう。

 

関数 役割 使い分け
IFERROR エラーなら代替値を返す 割り算など、すべてのエラーをまとめて処理したいとき
ISERROR エラーかどうかをTRUE/FALSEで返す エラー判定を条件分岐に使いたいとき
IFNA #N/Aだけを代替値にする VLOOKUPで#N/Aのみ処理したいとき

 

VLOOKUP系の検索は#N/Aだけを対象にしたい場面が多いためIFNAを、割り算などそれ以外の処理にはIFERRORを、というように使い分けると、後からのデバッグが楽になります。

 

スポンサーリンク

数式の検証機能でエラー箇所を特定する

ネストした関数(IFの中にVLOOKUPが入っているなど)でどこがエラーの原因か分からないときは、「数式の検証」機能が役立ちます。

 

数式を1ステップずつ実行しながら追いかけられる機能です。

 

🔬
「数式の検証」ツールの起動と使い方
起動ルート
エラーのセルを選択

「数式」タブ

数式の検証
数式の検証
参照先(R): Sheet1!C2
=SUM(A2:A10) + VALUE(“テキスト”)
← 下線部分が現在の評価ステップ
検証(V)
閉じる
スポンサーリンク

エラーは出ていないのに数式がおかしい場合

エラー記号は出ていないのに合計がゼロのまま・数式が古い値のままというケースは、計算方法が「手動」になっていることが原因のことが多いです。

 

「数式」タブ→「計算方法の設定」が「手動」になっていたら「自動」に変更するだけで解決します。急ぎのときはF9キーで強制的に再計算できます。

 

数式が反映されない・計算結果が変わらない現象については、Excel数式が反映されない・計算結果が変わらない原因と直し方で詳しく解説しています。

スポンサーリンク

エラーを未然に防ぐ3つの習慣

エラーが起きてから直すより、起きにくい設計をするほうが結果的に速く済みます。

 

  1. 外部データは貼り付け直後に「数値に変換」する
    CSVやWebからコピーしたデータは、「データ」タブ→「区切り位置」を使って型を確定させると文字列混入を防げます。
  2. 削除する前に参照元を確認する(Ctrl + `)
    「数式表示モード」でどのセルがどこを参照しているか一覧表示できるため、削除前の確認に便利です。
  3. 重要な数式はIFERRORで保護する
    予期しないエラーが出ても表示を制御できるよう、完成した数式をIFERRORでラップしておくと安心です。
スポンサーリンク

落とし穴|IFERRORで隠れる本当のミス

IFERRORで囲むと、数式そのものに問題があってもエラーが見えなくなります。参照先のセル番地を間違えていても「未登録」と表示されるだけで、ミスに気づけないことがあります。

 

筆者も以前、参照範囲を1列ズラしたまま気づかず、提出直前にデータの不整合を指摘されたことがあります。

 

数式を作りこむ段階ではIFERRORを外してテストし、完成後に包むという手順を徹底することをおすすめします。

スポンサーリンク

Q&A【よくある疑問まとめ】

Q. 別シートに数式をコピーしたら、元データは消していないのに#REF!になりました。なぜですか?
A. コピー先のセル位置によって、数式内の「相対参照」がシートの外(A列より左、1行目より上)にはみ出してしまったことが原因です。コピー元の数式で参照セルを選び「F4キー」を押して絶対参照($A$1形式)に変えてからコピーするか、値のみ貼り付けを試してください。
Q. 画面には数字しか入っていないのに、他のセルと「+」で足し算すると#VALUE!になります。
A. 他のシステム(CSVや社内データベースなど)からエクスポートしたデータには、目に見えない制御文字やスペースが数値の末尾に紛れ込み、Excelが「文字列」と誤認しているケースが多くあります。該当の列を選択し「データ」タブの「区切り位置」を開いてそのまま「完了」を押すだけで、一括して純粋な数値データに変換できます。
Q. IFERRORで囲んでいるのに#N/Aが消えません。
A. 参照先のセルに「#N/A」という文字列がそのまま入力されている可能性があります。VLOOKUPはこれを「文字として正常に取得できた値」とみなすため、IFERRORの対象外になります。参照先の表を確認してみてください。それでも解決しない場合は、計算方法が「手動」になっていないかもあわせて確認してください。
Q. IFERRORで空白にしたら、AVERAGEの計算結果がおかしくなりました。
A. IFERRORの第2引数を""(空白文字列)にすると、AVERAGE関数はそのセルを「文字列」として扱い、分母(データの個数)から除外します。その結果、平均値が期待より高く出ることがあります。エラーを「0」として平均計算に含めたい場合は、""ではなく0を指定してください。
スポンサーリンク

まとめ

 

    • #VALUE!は型の不一致、#REF!は参照先の消失、#NAME?は関数名・バージョンの問題が主な原因
    • XLOOKUPはExcel 2021以降、IFSはExcel 2019以降でのみ動作する点に注意
    • エラー表示を整えるにはIFERROR関数が有効。=IFERROR(値, エラーの場合の値)の2引数構成
    • #N/Aだけを処理したいならIFNA、判定だけならISERRORと使い分ける
    • 合計時のエラー除外にはAGGREGATE関数が安全
    • 複雑な数式でエラー箇所が分からないときは「数式の検証」機能が有効
  • エラーが出ていないのに結果がおかしいときは、計算方法が「手動」になっていないか確認する
  • IFERRORでエラーを隠しすぎると数式ミスに気づけなくなるため、テスト段階では外して確認する

 

 

タイトルとURLをコピーしました