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!が出る場合は、片方が「文字列としての日付」になっている可能性があります。
対象セルで=ISNUMBER(A1)と入力し、FALSEが返れば文字列と判定できるので確認してみてください。
#REF! ―― 参照先が消えたエラー
#REF!は、数式が参照していたセルや行・列が削除・移動されたときに発生します。
B列を参照する数式がある状態でB列ごと削除すると、その数式は即座に#REF!になります。
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関数を解説します。
大きな特徴は、#N/A・#VALUE!・#REF!など、これまで紹介したすべてのエラー値を1つの関数でまとめて処理できる点です。第2引数の書き方によって、表示のパターンが変わります。
| 目的 | 書き方 | 補足 |
|---|---|---|
| エラーを空白にする | =IFERROR(A1/B1, "") |
見た目はスッキリするが、AVERAGE等の集計に影響する場合がある(後述) |
| エラーを文字に置き換える | =IFERROR(VLOOKUP(D2,A:B,2,0), "未登録") |
「該当なし」「−」など用途に合わせて変更可能 |
| エラーを0にする | =IFERROR(A1/B1, 0) |
後からSUM等で合計する場合はこちらが安全 |
実務で使えるIFERROR活用パターン4選
① VLOOKUP + IFERROR(XLOOKUPなら不要)
IFERRORとの組み合わせで最も多いのが、VLOOKUPとの連携です。
VLOOKUPのエラーをさらに詳しく調べたい場合は、VLOOKUPエラーの原因と直し方|#N/A・結果が0・コピーでズレる対処法もご覧ください。
② IFとIFERRORを組み合わせる
「エラーのときは空白、値があれば○か×を表示したい」ような場面では、IFの外側をIFERRORで囲むのが基本の書き方です。
=IFERROR(IF(C2>=B2, "達成", "未達"), "−")③ エラーを除外して合計する
範囲内にエラーが含まれていると、SUMの結果まで#N/Aなどのエラーになってしまうことがあります。
=SUM(IFERROR(A1:A10,0))のような書き方は、Microsoft 365など配列を自動処理できる環境ならそのまま動きますが、古いバージョンではCtrl+Shift+Enterで配列数式として入力しないと正しく計算されません。
バージョンを気にせず安全にエラーを無視して合計するには、AGGREGATE関数がおすすめです。
=AGGREGATE(9, 6, A1:A10)④ IFERRORを2重にネストする(応用)
「1つ目の表で見つからなければ別の表から探す」ように、複数の参照先を順番に試したい場合はIFERRORのネストが使えます。
=IFERROR(VLOOKUP(D2, A:B, 2, 0), IFERROR(VLOOKUP(D2, E:F, 2, 0), "未登録"))IFERROR・ISERROR・IFNAの使い分け
似た名前の関数が複数あるため混乱しやすいポイントです。役割を整理しておきましょう。
| 関数 | 役割 | 使い分け |
|---|---|---|
IFERROR |
エラーなら代替値を返す | 割り算など、すべてのエラーをまとめて処理したいとき |
ISERROR |
エラーかどうかをTRUE/FALSEで返す | エラー判定を条件分岐に使いたいとき |
IFNA |
#N/Aだけを代替値にする | VLOOKUPで#N/Aのみ処理したいとき |
VLOOKUP系の検索は#N/Aだけを対象にしたい場面が多いためIFNAを、割り算などそれ以外の処理にはIFERRORを、というように使い分けると、後からのデバッグが楽になります。
数式の検証機能でエラー箇所を特定する
ネストした関数(IFの中にVLOOKUPが入っているなど)でどこがエラーの原因か分からないときは、「数式の検証」機能が役立ちます。
数式を1ステップずつ実行しながら追いかけられる機能です。
エラーは出ていないのに数式がおかしい場合
エラー記号は出ていないのに合計がゼロのまま・数式が古い値のままというケースは、計算方法が「手動」になっていることが原因のことが多いです。
「数式」タブ→「計算方法の設定」が「手動」になっていたら「自動」に変更するだけで解決します。急ぎのときはF9キーで強制的に再計算できます。
数式が反映されない・計算結果が変わらない現象については、Excel数式が反映されない・計算結果が変わらない原因と直し方で詳しく解説しています。
エラーを未然に防ぐ3つの習慣
エラーが起きてから直すより、起きにくい設計をするほうが結果的に速く済みます。
- 外部データは貼り付け直後に「数値に変換」する
CSVやWebからコピーしたデータは、「データ」タブ→「区切り位置」を使って型を確定させると文字列混入を防げます。 - 削除する前に参照元を確認する(Ctrl + `)
「数式表示モード」でどのセルがどこを参照しているか一覧表示できるため、削除前の確認に便利です。 - 重要な数式はIFERRORで保護する
予期しないエラーが出ても表示を制御できるよう、完成した数式をIFERRORでラップしておくと安心です。
落とし穴|IFERRORで隠れる本当のミス
IFERRORで囲むと、数式そのものに問題があってもエラーが見えなくなります。参照先のセル番地を間違えていても「未登録」と表示されるだけで、ミスに気づけないことがあります。
筆者も以前、参照範囲を1列ズラしたまま気づかず、提出直前にデータの不整合を指摘されたことがあります。
数式を作りこむ段階ではIFERRORを外してテストし、完成後に包むという手順を徹底することをおすすめします。
Q&A【よくある疑問まとめ】
まとめ
-
- #VALUE!は型の不一致、#REF!は参照先の消失、#NAME?は関数名・バージョンの問題が主な原因
- XLOOKUPはExcel 2021以降、IFSはExcel 2019以降でのみ動作する点に注意
- エラー表示を整えるにはIFERROR関数が有効。
=IFERROR(値, エラーの場合の値)の2引数構成 - #N/Aだけを処理したいならIFNA、判定だけならISERRORと使い分ける
- 合計時のエラー除外にはAGGREGATE関数が安全
- 複雑な数式でエラー箇所が分からないときは「数式の検証」機能が有効
- エラーが出ていないのに結果がおかしいときは、計算方法が「手動」になっていないか確認する
- IFERRORでエラーを隠しすぎると数式ミスに気づけなくなるため、テスト段階では外して確認する