IFERROR の使い方と落とし穴【エラーを隠す前に読む完全ガイド】
「Excelで #N/A や #DIV/0! が出るのが見栄え悪い…」
そんなときに使うのが IFERROR 関数です。
ただ、IFERROR は 使い方を間違えると、本来見えるべき問題まで隠してしまう 危険な関数でもあります。
この記事では、
- 基本的な使い方
- よく使う3パターン
- 絶対に知っておきたい3つの落とし穴
- いつ使う/いつ使わないの判断基準
をまとめます。読み終わるころには、「とりあえず IFERROR」ではなく、意図して使えるようになる はずです。
💡 関連記事:
- VLOOKUPで#N/Aが出る5つの原因と解決法 ← 根本対処したい人向け
- Excelの主要エラー6種【症状→原因→解決の早見表】
IFERROR とは(30秒で分かる)
IFERROR は「もしエラーが出たら、代わりに別の値を表示する」関数です。
=IFERROR(式, エラー時に返す値)
例えば:
=IFERROR(A1/B1, "")
これは「A1/B1 を計算して、エラーが出たら空白を返す」という意味。
適用前: 分母が 0 の行で #DIV/0! エラーが表示されます。

適用後: =IFERROR(A2/B2, 0) のように包めば、エラーの代わりに 0(または好きな値)が表示されます。

IFERROR は セルにエラーが出ていれば、種類を問わず 捕まえます。
#N/A #VALUE! #REF! #DIV/0! #NAME? #NULL! #NUM! はもちろん、#スピル! #ブロック! #CALC! のような新しい種類のエラーも同じ扱いです(表示名が日本語になっているものもあります)。
→ 種類を選べない のが、便利でもあり危険でもあります(後述)。
基本構文
=IFERROR(式, エラー時に返す値)
| 引数 | 説明 |
|---|---|
| 式 | チェックしたい計算式(例: A1/B1, VLOOKUP(...)) |
| エラー時に返す値 | 式がエラーだった場合に表示する値(例: "", 0, "未入力") |

📌 ポイント: 第2引数には文字列・数値・別の数式も指定できます。「エラーなら 0 として集計に含める」のような使い方が定番です。
よく使う3パターン
パターン①:VLOOKUPの #N/A を空白に
「マスタにまだ登録されていない商品コード」など、見つからないこと自体は問題ない場合に使います。
=IFERROR(VLOOKUP(A2, 商品マスタ!A:C, 2, FALSE), "")

⚠️ ただし、「本当はマッチすべきなのにマッチしてない」場合まで隠してしまう可能性があります。VLOOKUPの
#N/Aは原因が複数あるので、先に原因切り分けしてから使うのがおすすめ。
パターン②:割り算の #DIV/0! をゼロまたは空白に
集計表で「まだデータが入っていない月だけエラーが出る」ケースで便利。
=IFERROR(A2/B2, 0)

実務でよくあるのは、達成率や前月比のセル がデータ未入力で #DIV/0! になるパターン。IFERROR でゼロにすればエラー表示が消え、SUM の合計も変わりません。ただし AVERAGE や COUNT では、その 0 が1件のデータとして数えられます。平均を出す列で使うときは、0 ではなく ""(空文字)を返すほうが実態に合います。
パターン③:複雑な数式のエラー全般を非表示に
ネストした関数や、複数条件の式でエラーが出る可能性をまとめて潰したいとき。
=IFERROR(複雑な式, "確認中")
エラーになったセルだけ「確認中」と表示されるので、原因調査の対象が見つけやすくなります。
⚠️ 3つの落とし穴
ここからが大事です。IFERROR を使う前に 必ず 知っておいてください。
落とし穴①:エラーを「全部」隠してしまう
IFERROR は 全種類のエラーを区別なく 捕まえます。
例えば:
=IFERROR(VLOOKUP(A2, 商品マスタ!A:C, 2, FALSE), "")
これだと、#N/A(見つからなかった)だけでなく、#REF!(参照範囲が壊れている)も #NAME?(関数名のスペルミス)も、全部空白になります。

つまり、本当はバグなのに気づけない という状況が起きます。
📌 対策: VLOOKUP系で「見つからない」だけを隠したいなら、
IFNAのほうが安全(後述)。
落とし穴②:デバッグできなくなる
IFERROR で包んだ式は、エラーが出ても 画面上は正常に見えます。
本来なら:
「あれ?このセルに#REF!が出てる…どこの参照が壊れたんだろう?」
と気づくところを、
「なぜか集計が合わない…どこが原因か分からない…」
という、もっと厄介な状況に変わります。
特に他人に渡すブックや、長く使う管理表では要注意です。
📌 対策: 開発中は
IFERRORを 外して エラーを目視で確認 → 動作確定後にIFERRORで包む、の順番が安全。
落とし穴③:IFNA のほうが良いケースがある
VLOOKUP・XLOOKUP系で「見つからない場合だけ」非表示にしたいなら、IFERROR ではなく IFNA を使いましょう。
=IFNA(VLOOKUP(A2, 商品マスタ!A:C, 2, FALSE), "")
IFNA は #N/A だけ を捕まえます。他のエラー(#REF!, #NAME? など)はそのまま表示されるので、本来のバグに気づけます。
💡 VLOOKUP の代わりに INDEX+MATCH を使っている場合も同じで、
IFNA(INDEX(...), "")のように包めば「見つからない」だけを安全に隠せます。

| 関数 | 捕まえるエラー | 用途 |
|---|---|---|
IFERROR | 全部 | エラーの種類を問わず非表示にしたい |
IFNA | #N/A のみ | VLOOKUP系の「見つからない」だけ非表示にしたい |
📌 VLOOKUP系では
IFNA推奨。他のエラーを握りつぶさないので、後々のトラブルを防げます。
いつ使う/いつ使わない の判断基準
✅ 使ってOKなケース
- エラーになることが想定内(例: 集計表でまだ入力されてない月)
- 見た目を整える必要がある(顧客に見せる帳票など)
- エラー時の挙動を明示的に決めたい(例: 在庫切れなら "ー" と表示)
❌ 使う前に立ち止まるべきケース
- エラーの原因が分かっていない: まず原因を特定しましょう
- データが正しいのにエラーが出ている: 数式や参照の問題なので、根本対処が必要
- 業務クリティカルな計算: 隠したエラーが集計に悪影響を与える可能性
📌 鉄則: 「
IFERRORを貼る前に、なぜエラーが出ているかを1回は確認する」
まとめ:判断フロー
| ステップ | やること |
|---|---|
| 1 | エラーの 種類 を確認(#N/A, #DIV/0!, etc.) |
| 2 | エラーの 原因 を特定する |
| 3 | 根本対処できるなら、それを優先 |
| 4 | 「エラーになって当然」なケースだけ IFERROR / IFNA |
| 5 | VLOOKUP系で見つからないだけを隠すなら IFNA を選ぶ |
よくある質問
Q. IFERROR を使うと処理が重くなる?
A. 軽微です。少数のセルなら気にしなくてOK。数千行に渡る複雑な式の場合は、根本対処(データ側を整える)を優先する方がパフォーマンス的に有利です。
Q. IFERROR の中に IFERROR を入れてもいい?
A. 動作はしますが、可読性が下がります。代わりに IFS や IF で条件分岐したほうが分かりやすいことが多いです。
Q. Excelのバージョンによって使える?
A. IFERROR は Excel 2007 以降で使えます。IFNA は Excel 2013 以降です。
次に読む
VLOOKUPで#N/Aが出る5つの原因と解決法【上から順に試せばOK】
VLOOKUPで#N/Aが出る原因をチェックリスト形式で5パターン解説。データ型・余白・FALSE指定・左端列・絶対参照の順に試せば、原因を絞り込めます。IFERROR・IFNAで#N/Aを表示させない(空白にする)書き方も最後に紹介します。
Excelの主要エラー6種【症状→原因→解決の早見表】
#VALUE! #REF! #DIV/0! #NAME? #NULL! #N/A の6種のExcelエラーを、症状から逆引きできる早見表+解決法で整理。「どのエラーがなぜ出るのか」と最短の直し方を、エラー記号ごとに初心者向けにまとめました。
IF関数の入れ子から卒業する5つの方法【パターン別に使い分け】
IFを3重・4重に入れ子にしてしまった経験はありませんか? IFS / SWITCH / VLOOKUP / AND・OR / ブール演算 の5つの選択肢から、パターンに合わせて選べるようになる記事です。コピペで動く実例つき。