【Excel】IFERROR関数の使い方|エラーを空白や0に変換する方法&実務活用例5選
ExcelのIFERROR関数とは、数式がエラーになった場合に、指定した値に置き換えて表示する関数です。
=IFERROR(値, エラーの場合の値)
たとえば、VLOOKUPで「#N/A」エラーが出てしまう場合や、割り算で「#DIV/0!」エラーが表示される場合に、IFERROR関数を使えばエラーの代わりに空白や0、任意のメッセージを表示できます。
この記事では、IFERROR関数の基本的な使い方から、VLOOKUPやINDEX/MATCHとの組み合わせ、ISERROR・IFNAとの違い、実務で使える活用例5選までを初心者にもわかりやすく解説します。

Excelで数式を使っていると、必ずと言っていいほどエラーに遭遇します。IFERROR関数はそんなエラーを一発で解決してくれる、Excel初心者が最初に覚えるべき関数の1つですよ。
- IFERROR関数の基本的な書き方と使い方
- エラーを空白や0に変換する具体的な方法
- VLOOKUPのエラーをIFERROR関数で処理する方法
- 実務で使えるIFERROR関数の活用例5選
- IFERROR・ISERROR・IFNAの違いと使い分け
- IFERRORが効かない場合のトラブルシューティング
IFERROR関数とは
IFERROR関数は、数式の結果がエラーかどうかを判定し、エラーの場合に代替の値を返す関数です。Excel 2007以降のすべてのバージョンで使用できます。
構文(書式)
=IFERROR(値, エラーの場合の値)
| 引数 | 説明 | 必須/任意 |
|---|---|---|
| 値 | エラーかどうかをチェックする数式やセル参照 | 必須 |
| エラーの場合の値 | エラーだった場合に表示する値(文字列、数値、空白””など) | 必須 |
動作の仕組み
=IFERROR(C5/D5, "入荷がありません。")
- まず
C5/D5を計算する - 結果がエラーでなければ → 計算結果をそのまま表示
- 結果がエラーであれば → 「入荷がありません。」を表示

IFERROR関数は「IF(もし)ERROR(エラー)なら」という意味です。名前のとおり、エラーの場合だけ別の値を表示する、とてもシンプルな関数ですよ。
Excelのエラーの種類一覧
IFERROR関数で処理できるエラーは全部で7種類あります。どのエラーがどんな原因で発生するか把握しておくと、トラブル対処がスムーズになります。
| エラー | 原因 | よくある発生場面 |
|---|---|---|
| #DIV/0! | 0(ゼロ)で割り算した | 売上÷数量の計算で数量が0 |
| #N/A | 検索値が見つからない | VLOOKUPで該当データなし |
| #VALUE! | データ型が不正 | 数値と文字列を計算しようとした |
| #REF! | 参照先が無効 | 参照しているセルが削除された |
| #NAME? | 関数名やセル名が不正 | 関数名のスペルミス |
| #NUM! | 数値が不正 | 計算結果が大きすぎる/小さすぎる |
| #NULL! | セル範囲の指定が不正 | 範囲指定で「:」の代わりに半角スペースを使った |
ポイント: IFERROR関数は上記7種類すべてのエラーを処理できます。特定のエラーだけを処理したい場合は、後述するIFNA関数やISERROR関数を使い分けてください。
IFERROR関数の基本的な使い方【STEP形式】
IFERROR関数を使って、割り算のエラーを処理する基本的な手順を説明します。
STEP 1: エラーが出ている数式を確認する
まず、エラーが発生している数式を確認します。
例として、「消耗品の経費(C列)÷ 入荷数(D列)」の計算で、入荷数が0のセルに #DIV/0! エラーが出ているケースを見てみましょう。
=C5/D5 → #DIV/0!(D5が0のため)

STEP 2: IFERROR関数で数式を囲む
エラーが出ている数式を、IFERROR関数で囲みます。
=IFERROR(C5/D5, "入荷がありません。")

STEP 3: エラー時の表示を確認する
Enter キーを押すと、エラーの代わりに「入荷がありません。」が表示されます。正常な計算結果のセルはそのまま数値が表示されます。


たった1行の数式でエラーが消えましたね。既存の数式をIFERROR()で囲むだけなので、とても簡単です。
エラーを空白にする方法【小技】
エラーを文字列ではなく空白(何も表示しない)にしたい場合は、第2引数にダブルクォーテーション2つ "" を指定します。
=IFERROR(C5/D5, "")
| 数式 | エラー時の表示 |
|---|---|
=IFERROR(C5/D5, "入荷がありません。") | 入荷がありません。 |
=IFERROR(C5/D5, "") | (空白) |
=IFERROR(C5/D5, 0) | 0 |
=IFERROR(C5/D5, "-") | – |

実務では "" で空白にするパターンが一番よく使われます。見た目がスッキリして、表の見栄えが良くなりますよ。
実務で使えるIFERROR関数の活用例5選
例1: VLOOKUPのエラーを非表示にする
VLOOKUPで検索値が見つからない場合に表示される #N/A エラーをIFERRORで処理します。
=IFERROR(VLOOKUP(A2, 商品マスタ!A:C, 3, FALSE), "該当なし")
| A列(商品コード) | VLOOKUP結果 | IFERROR適用後 |
|---|---|---|
| P001 | りんご | りんご |
| P002 | みかん | みかん |
| P999 | #N/A | 該当なし |
使いどころ: 商品マスタとの照合、社員名簿の検索、在庫管理表の参照など
例2: 割り算の#DIV/0!エラーを処理する
割り算で分母が0の場合に表示される #DIV/0! エラーを処理します。
=IFERROR(B2/C2, 0)
使いどころ: 売上達成率の計算(目標が0の場合)、原価率の計算、平均値の計算など
例3: IFERRORの入れ子(ネスト)で複数の検索を行う
1つ目のVLOOKUPでエラーが出たら、2つ目のVLOOKUPで別のテーブルを検索する、というように複数の検索を順番に実行できます。
=IFERROR(VLOOKUP(A2, テーブル1, 2, FALSE), IFERROR(VLOOKUP(A2, テーブル2, 2, FALSE), "どちらにもなし"))
動作の流れ:
- まずテーブル1を検索
- 見つからなければ(#N/A)→ テーブル2を検索
- テーブル2にもなければ → 「どちらにもなし」を表示
使いどころ: 複数の商品マスタを横断検索、本社/支社の社員名簿を順番に検索
例4: IFERRORとINDEX/MATCHの組み合わせ
VLOOKUPの代わりにINDEX/MATCHを使う場合も、IFERRORの書き方は同じです。
=IFERROR(INDEX(B:B, MATCH(D2, A:A, 0)), "未登録")
メリット: INDEX/MATCHはVLOOKUPと違い、検索列が左側になくても検索できます。IFERRORで囲むことで、エラー処理も万全です。
関連: Excel VLOOKUP関数の使い方 | VLOOKUP複数条件の使い方
例5: 勤怠管理での活用(実務シーン)
勤怠管理表で、退勤時刻が入力されていない場合のエラーを処理します。
=IFERROR(C2-B2, "")
| 名前 | 出勤(B列) | 退勤(C列) | 勤務時間 |
|---|---|---|---|
| 田中 | 9:00 | 18:00 | 9:00 |
| 佐藤 | 9:00 | (未入力) | (空白) |
| 鈴木 | 9:00 | 17:30 | 8:30 |
使いどころ: 勤怠管理、日報作成、タイムカード集計など

私が製造業で働いていた時も、勤怠管理表でIFERROR関数は必須でした。退勤時間が入力されるまでエラーが表示されると見栄えが悪いので、IFERROR(計算式, “”)で空白にしておくと上司への提出もスムーズですよ。
IFERROR vs ISERROR vs IFNA の違い【比較表】
Excelにはエラーを処理する関数が複数あります。それぞれの違いと使い分けを比較表で確認しましょう。
| 項目 | IFERROR | ISERROR | IFNA |
|---|---|---|---|
| 機能 | エラーなら代替値を返す | エラーかどうかをTRUE/FALSEで返す | #N/Aエラーなら代替値を返す |
| 対応エラー | 全7種類 | 全7種類 | #N/Aのみ |
| 書式 | =IFERROR(値, 代替値) | =ISERROR(値) | =IFNA(値, 代替値) |
| 対応バージョン | Excel 2007以降 | Excel 2003以降 | Excel 2013以降 |
| 単体で使えるか | はい(代替値を直接返す) | いいえ(IF関数と組み合わせが必要) | はい(代替値を直接返す) |
| おすすめ場面 | 汎用的なエラー処理(最も使う) | エラーの有無だけ判定したい場合 | VLOOKUPの#N/Aだけ処理したい場合 |
ISERROR関数の使い方(参考)
ISERROR関数はTRUE/FALSEを返すだけなので、IF関数と組み合わせて使います。
=IF(ISERROR(C5/D5), "エラーです", C5/D5)
IFERROR関数ならこう書ける:
=IFERROR(C5/D5, "エラーです")

結論として、ほとんどの場合はIFERROR関数を使えばOKです。ISERRORは古いバージョンのExcelで使われていた方法で、IFERROR関数が登場してからはあまり使う場面がありません。IFNA関数は「#N/Aエラーだけ処理して、他のエラーはそのまま表示したい」という特殊なケースで使います。
よくあるトラブルと解決方法
IFERRORが効かない場合
IFERRORを使っているのにエラーが表示される場合、以下の原因が考えられます。
| 症状 | 原因 | 解決方法 |
|---|---|---|
| エラーがそのまま表示される | IFERROR関数の外でエラーが発生 | 数式全体をIFERROR()で囲んでいるか確認 |
| 「#NAME?」エラーが出る | IFERROR関数のスペルミス | 関数名が「IFERROR」であることを確認 |
| 意図しない値が返る | 正常な値もエラーとして処理される | 数式を分解して、どの部分でエラーが出ているか確認 |
| 空白セルが「0」になる | IFERROR関数の問題ではなく、参照先の問題 | 空白セルを参照する数式を見直す |
エラーの種類別の対処法
| エラー | 原因と対処法 |
|---|---|
| #DIV/0! | 分母が0 → =IFERROR(A1/B1, 0) |
| #N/A | 検索値なし → =IFERROR(VLOOKUP(...), "該当なし") |
| #VALUE! | データ型不一致 → 参照セルのデータ型を確認 |
| #REF! | 参照先削除 → Ctrl+Zで元に戻す or 参照先を修正 |
| #NAME? | 関数名ミス → スペルを確認、全角文字が混じっていないか確認 |
IFERROR関数の処理をVBAで自動化する方法
IFERROR関数の代わりにVBAマクロを使えば、エラーセルの検出と一括処理を自動化できます。
' エラーセルを自動検出して処理するマクロ
Sub エラー自動処理()
Dim ws As Worksheet
Set ws = ActiveSheet
Dim cell As Range
For Each cell In ws.Range("C2:C6")
If IsError(cell.Value) Then
cell.Value = "該当なし"
cell.Interior.Color = RGB(255, 243, 224)
End If
Next cell
MsgBox "エラーセルの処理が完了しました"
End Sub
Sub エラー自動処理()
Dim ws As Worksheet
Set ws = ActiveSheet
Dim cell As Range
For Each cell In ws.Range(“C2:C6”)
If IsError(cell.Value) Then
cell.Value = “該当なし”
cell.Interior.Color = RGB(255, 243, 224)
End If
Next cell
MsgBox “エラーセルの処理が完了しました”
End Sub
| A | B | C | |
|---|---|---|---|
| 1 | 商品ID | 商品名 | 単価 |
| 2 | P001 | りんご | 150 |
| 3 | P002 | みかん | 80 |
| 4 | P003 | #N/A 該当なし | |
| 5 | P004 | ぶどう | 300 |
| 6 | P005 | #N/A 該当なし |
☝ IFERROR関数の代わりにVBAでエラー処理を自動化できます
よくある質問(FAQ)
Q: ExcelのIFERROR関数とは何ですか?
A: IFERROR関数は、数式の結果がエラーかどうかを判定し、エラーの場合に指定した代替値を返す関数です。書式は =IFERROR(値, エラーの場合の値) です。Excel 2007以降のすべてのバージョンで使用できます。
Q: IFERROR関数でエラーを空白にするにはどうすればいいですか?
A: 第2引数にダブルクォーテーション2つ "" を指定します。例: =IFERROR(A1/B1, "") これでエラーの場合にセルが空白になります。
Q: IFERROR関数とISERROR関数の違いは何ですか?
A: IFERROR関数はエラーの場合に代替値を直接返せますが、ISERROR関数はTRUE/FALSEを返すだけなのでIF関数と組み合わせる必要があります。=IFERROR(A1/B1, 0) と =IF(ISERROR(A1/B1), 0, A1/B1) は同じ結果になりますが、IFERROR関数のほうが短く書けます。
Q: IFERROR関数とIFNA関数はどう使い分けますか?
A: IFERROR関数は7種類すべてのエラーを処理しますが、IFNA関数は#N/Aエラーのみを処理します。VLOOKUPで「#N/A以外のエラーはそのまま表示させたい」場合はIFNA関数を使い、すべてのエラーを処理したい場合はIFERROR関数を使いましょう。
Q: IFERRORとVLOOKUPを組み合わせる方法は?
A: VLOOKUP関数をIFERROR関数の第1引数に入れます。例: =IFERROR(VLOOKUP(A2, B:C, 2, FALSE), "該当なし") これで検索値が見つからない場合に「該当なし」と表示されます。
Q: IFERROR関数はExcelのどのバージョンから使えますか?
A: IFERROR関数はExcel 2007から使用可能です。Excel 2003以前をお使いの場合は、代わりに =IF(ISERROR(値), 代替値, 値) の書式を使ってください。
Q: IFERROR関数で複数のエラーを別々に処理できますか?
A: IFERROR関数単体ではすべてのエラーに同じ代替値を返します。エラーの種類ごとに異なる処理をしたい場合は、ERROR.TYPE関数と組み合わせて使います。ただし、ほとんどの実務シーンではIFERROR関数で統一的に処理すれば十分です。
Q: IFERROR関数でエラーの場合に0を表示するには?
A: 第2引数に数値の 0 を指定します。例: =IFERROR(A1/B1, 0) エラーの場合にセルに0が表示されます。SUMやAVERAGEの計算対象にしたい場合は0を、計算から除外したい場合は空白 "" を指定してください。
Q: IFERROR関数が効かない場合の対処法は?
A: 最も多い原因は、IFERROR関数が数式全体を囲んでいないケースです。例えば =IFERROR(A1, 0)/B1 ではなく =IFERROR(A1/B1, 0) のように、エラーが発生する可能性のある計算全体をIFERROR関数で囲んでください。
まとめ
IFERROR関数のポイントをおさらいしましょう。
| ポイント | 内容 |
|---|---|
| 書式 | =IFERROR(値, エラーの場合の値) |
| 対応エラー | 全7種類(#DIV/0!, #N/A, #VALUE!, #REF!, #NAME?, #NUM!, #NULL!) |
| エラーを空白にする | =IFERROR(数式, "") |
| エラーを0にする | =IFERROR(数式, 0) |
| VLOOKUP対策 | =IFERROR(VLOOKUP(...), "該当なし") |
| 対応バージョン | Excel 2007以降(Excel 2003以前はISERROR+IF) |
| 使い分け | 全エラー処理→IFERROR、#N/Aのみ→IFNA |
IFERROR関数はExcelのエラー処理において最も汎用的で使いやすい関数です。まずはVLOOKUPや割り算でエラーが出ている箇所に =IFERROR(数式, "") を適用してみてください。

IFERROR関数を覚えると、Excelの見栄えが一気に良くなりますよ。上司に提出する資料でエラーが表示されていると「ちゃんと確認したの?」と言われがちですが、IFERROR関数で処理しておけば安心ですね。
LINEでExcelを気軽に学べる
関連記事
- Excelおすすめ関数6選|初心者が最初に覚えるべき関数ガイド — IFERROR含むおすすめ関数まとめ
- Excel VLOOKUP関数の使い方 — IFERRORとの組み合わせで必須の関数
- Excel IF関数の使い方 — 条件分岐の基本
- Excel IF関数 応用テクニック — IF関数のネストや複数条件
- VLOOKUP 複数条件の使い方 — VLOOKUP応用テクニック
- Excel COUNTIFS関数の使い方 — 条件付きカウント
- Excel AND/OR/NOT関数の使い方 — 論理関数の基本
- Excel SUMIF関数の使い方 — 条件付き合計
Excelスキルを活かしてSNS運用も自動化しませんか?
Excelの関数をマスターしたあなたなら、Googleスプレッドシート×GAS(Google Apps Script)を使ったSNS自動化ツールもすぐに使いこなせます。X(Twitter)やThreadsの予約投稿を、月額0円で自動化する方法をまとめています。
→ SNS予約投稿ツール完全ガイド|無料&買い切りツールを徹底比較
