ExcelのIFERROR関数の使い方|エラーを非表示にする基本から応用まで

スポンサーリンク

VLOOKUPで検索したら「#N/A」、割り算したら「#DIV/0!」……。Excelを使っていると、こうしたエラー表示に悩まされますよね。せっかく作った資料にエラーが並んでいると見栄えも悪くなります。しかも、そのセルを参照する他の数式まで連鎖的にエラーになってしまいます。

そんなときに頼りになるのがIFERROR関数です。この記事では、IFERROR関数の基本的な使い方からVLOOKUPやINDEX+MATCHとの組み合わせまで紹介します。XLOOKUPでIFERRORが不要になるケースや、IFNA関数との違いも実例付きで解説していきますよ。

IFERROR関数とは?

IFERROR関数は、数式がエラーになったときに代わりの値を返してくれるExcelの関数です。エラー処理をたった1つの関数で完結できるので、実務で非常によく使われます。

読み方・意味

IFERROR(いふえらー)は「IF(もし)」+「ERROR(エラー)」を組み合わせた名前です。「もしエラーだったら、こっちの値を表示してね」という処理を1つの関数で実現します。

何ができるか

IFERROR関数を使うと、次のようなことができます。

  • エラーの代わりに空白(””)を表示して、セルをきれいに見せる
  • 「該当なし」「データなし」などの任意メッセージを表示する
  • エラー時に別の計算式を実行する(代替処理)
  • 他の数式への連鎖エラーを防止する

Excel 2007で導入された関数です。Microsoft 365やExcel 2024/2021でも使えます。Googleスプレッドシートでも同じ書き方で利用できますよ。

IFERROR関数の書き方(構文と引数)

基本構文

IFERROR関数の構文はとてもシンプルです。

=IFERROR(値, エラーの場合の値)

引数はたったの2つだけ。覚えやすいですよね。

引数の説明

それぞれの引数の意味を表で整理しておきましょう。

引数必須/省略説明
必須エラーかどうかをチェックしたい数式やセル参照を指定します
エラーの場合の値必須エラーだった場合に表示する値を指定します。文字列・数値・数式のいずれもOKです

第2引数に何も指定しない場合

第2引数を省略すると、エラー時に「0」が返されます。意図しない結果になることがあるので、空白にしたい場合は "" を明示的に指定しましょう。

IFERROR関数が検出できるエラー一覧

IFERROR関数はExcelの全7種類のエラーをまとめてキャッチします。

エラー値発生する主な原因
#N/AVLOOKUP関数等で検索値が見つからない
#VALUE!引数のデータ型が正しくない
#REF!参照先のセルが削除された
#DIV/0!0で割り算をした
#NUM!数値が大きすぎる・小さすぎる
#NAME?関数名のスペルミス
#NULL!セル範囲の指定が正しくない

すべてのエラーをまとめて処理してくれるので、「とりあえずエラーを非表示にしたい」という場面ではとても便利です。各エラーの詳しい原因はExcelエラーの種類と原因も参考にしてみてください。

IFERROR関数の基本的な使い方

ここからは実際の使い方を見ていきましょう。

エラーを空白にする

一番よく使うパターンが、エラーを空白に置き換えるケースです。

=IFERROR(A1/B1, "")

B1が0のときに発生する「#DIV/0!」エラーを空白にします。印刷する資料やプレゼン用のシートで特に重宝しますよ。

エラー時にメッセージを表示する

空白ではなく、わかりやすいメッセージを表示することもできます。

=IFERROR(A1/B1, "計算不可")

エラーが起きたセルに「計算不可」と表示されます。何が問題なのかをひと目で伝えたいときに使ってみてください。

エラー時に数値を返す

数値を返すパターンも実務でよく使います。

=IFERROR(A1/B1, 0)

エラー時に0を返せば、SUM関数AVERAGE関数で集計するときにエラーで計算が止まるのを防げます。

IFERROR関数の実務活用パターン

基本がわかったところで、実務で特に役立つ活用パターンを紹介します。

パターン1: VLOOKUP+IFERRORで未登録データを処理する

IFERROR関数の最も定番の使い方が、VLOOKUP関数との組み合わせです。

VLOOKUPは検索値が見つからないと「#N/A」エラーを返します。商品コードで商品マスタを検索するケースを考えてみましょう。

=IFERROR(VLOOKUP(A2, 商品マスタ!A:C, 3, FALSE), "未登録")

商品コードが見つからなければ「未登録」と表示します。大量のデータを突合するときに、この書き方は必須テクニックですよ。

VLOOKUP以外の検索関数でも同じパターンが使えます

HLOOKUP関数XLOOKUP関数でも、検索値が見つからないときのエラー対策としてIFERRORが活躍します。

パターン2: 割り算の#DIV/0!エラーを回避する

売上分析や在庫管理でよくある「0で割ってしまう」問題です。前年比や構成比を計算するとき、分母が0やブランクだとエラーになりますよね。

=IFERROR(B2/C2, "---")

データが未入力の行もきれいに処理できますね。月次レポートや予実管理表で重宝するパターンです。

達成率の計算にも使えます。

=IFERROR(B2/C2*100, 0)

目標値が未設定の行でもエラーにならず、集計に影響しません。

パターン3: INDEX+MATCH+IFERRORで柔軟な検索をする

INDEX関数MATCH関数を組み合わせた検索でも、IFERRORは活躍します。

=IFERROR(INDEX(C:C, MATCH(A2, B:B, 0)), "該当なし")

VLOOKUPでは難しい「検索列より左側の値を取得する」パターンです。MATCH関数が検索値を見つけられないときに「該当なし」を返します。

パターン4: IFERRORのネストで複数テーブルを横断検索する

IFERROR関数の第2引数に別のIFERROR関数を入れると、複数のテーブルを順番に検索できます。

=IFERROR(VLOOKUP(A2, シート1!A:B, 2, FALSE), IFERROR(VLOOKUP(A2, シート2!A:B, 2, FALSE), "どちらにもなし"))

まずシート1で検索し、見つからなければシート2を検索します。どちらにもなければ「どちらにもなし」と表示する仕組みです。複数のマスタテーブルを横断検索したいときに便利なテクニックですよ。

パターン5: エラー時に代替の計算を実行する

第2引数には数式も指定できます。エラーが出たら別の方法で計算する、という使い方です。

=IFERROR(VLOOKUP(A2, 単価表!A:B, 2, FALSE), VLOOKUP(A2, 標準単価表!A:B, 2, FALSE))

メインの単価表になければ標準単価表から取得する、というフォールバック処理ができます。

パターン6: INDEX+XMATCH+IFERRORでよりシンプルに検索する

Excel 2021/2024やMicrosoft 365では、MATCH関数の代わりにXMATCH関数を使えます。引数がシンプルなので、数式が読みやすくなりますよ。

=IFERROR(INDEX(C:C, XMATCH(A2, B:B)), "該当なし")

XMATCH関数はデフォルトで完全一致検索です。MATCH関数のように第3引数に 0 を指定する必要がありません。

パターン3のMATCH版と比較してみましょう。

MATCH版 : =IFERROR(INDEX(C:C, MATCH(A2, B:B, 0)), "該当なし")
XMATCH版: =IFERROR(INDEX(C:C, XMATCH(A2, B:B)), "該当なし")

やっていることは同じですが、XMATCH版の方がスッキリしていますよね。対応バージョンのExcelを使っている方は、ぜひ試してみてください。

XLOOKUPを使えばIFERRORが不要になるケース

ここまでIFERROR関数の便利な使い方を紹介してきました。ただし、XLOOKUP関数が使える環境なら、そもそもIFERRORが不要になるケースがあります。

XLOOKUP関数には第4引数「見つからない場合の値」が用意されています。検索値がヒットしないときの代替値を、関数内で直接指定できるんです。

=XLOOKUP(A2, 商品マスタ!A:A, 商品マスタ!C:C, "未登録")

IFERRORで囲む必要がないので、数式がスッキリしますよね。

IFERROR+VLOOKUP版と比較してみましょう。

IFERROR+VLOOKUP: =IFERROR(VLOOKUP(A2, 商品マスタ!A:C, 3, FALSE), "未登録")
XLOOKUP        : =XLOOKUP(A2, 商品マスタ!A:A, 商品マスタ!C:C, "未登録")

どちらも「見つからなければ未登録」という動作は同じです。XLOOKUPなら1つの関数で完結します。

ただし、XLOOKUP関数はExcel 2021/2024とMicrosoft 365でのみ使えます。Excel 2016や2019では対応していません。職場のExcelバージョンが混在している場合は、IFERROR+VLOOKUPの方が安全です。

また、XLOOKUPの第4引数で処理できるのは「検索値が見つからない」エラーだけです。数式自体のエラー(#REF!や#VALUE!など)は処理できません。全エラーをまとめて対策したい場合は、引き続きIFERROR関数が必要ですよ。

各関数の使い分けはVLOOKUP・XLOOKUP・INDEX MATCHの使い分けでも詳しく解説しています。

IFERROR関数のよくあるエラーと対処法

IFERROR関数自体はシンプルですが、使い方を間違えるとハマるポイントがあります。

症状原因対処法
本来気づくべきエラーまで隠れるIFERROR関数が全エラーをキャッチするためIFNA関数で#N/Aだけを対象にする
エラー時に意図しない「0」が表示される第2引数を省略している空白にしたい場合は "" を明示的に指定する
#NAME?エラーが出る第2引数の文字列にダブルクォーテーションがない文字列は必ず "文字列" で囲む
数式の結果が正しくないIFERRORの中の数式自体に誤りがあるIFERRORを外して元の数式だけで動作確認する
空白セルなのに0と表示されるエラーではなく空白セルの参照が原因IFERROR関数はエラーのみ対象。空白の処理はIF関数で分岐する

デバッグのコツ

IFERRORを使っている数式のトラブルシューティングでは、まずIFERRORを外して中の数式だけをテストしましょう。エラーの原因が見えるようになりますよ。

エラーを隠しすぎる問題への対策

IFERROR関数の最大の注意点は、すべてのエラーを非表示にしてしまうことです。本来気づくべき参照ミスや数式の誤りまで隠れてしまうリスクがあります。

たとえば、VLOOKUPの範囲指定を間違えて#REF!が出ていても、IFERRORが「未登録」と表示してしまいます。数式のバグに気づけないまま、間違ったデータで資料を作ってしまう可能性があるんです。

対策としては、以下の使い分けがおすすめです。

  • 作成中のシート: IFERRORを外しておき、エラーを確認しながら作業する
  • 完成版の資料: IFERRORで見た目を整える
  • 検索系のエラーだけ処理したい: IFNA関数を使う

VLOOKUPの「見つからない」だけを処理するなら、IFNA関数の方が安全です。#REF!や#NAME?といった数式バグはそのまま表示されるので、問題にすぐ気づけますよ。

似た関数との違い・使い分け

IFERROR関数と似た機能を持つ関数を比較してみましょう。

関数対象エラー戻り値導入バージョン特徴
IFERROR全7種類エラー時: 指定値 / 正常時: 元の値Excel 2007最もシンプル。1つの関数で完結
IFNA#N/Aのみエラー時: 指定値 / 正常時: 元の値Excel 2013検索エラーだけを処理したいとき
ISERROR全7種類TRUE / FALSEExcel 2003以前判定のみ。処理にはIF関数が必要
ISERR#N/A以外の6種類TRUE / FALSEExcel 2003以前#N/Aを除外して判定
ISNA#N/AのみTRUE / FALSEExcel 2003以前#N/Aだけを判定
ERROR.TYPE全7種類エラー番号(1-7)Excel 2003以前エラーの種類を番号で特定

IFERRORとIF+ISERRORの比較

Excel 2007より前のバージョンでは、エラー処理にIF関数ISERROR関数を組み合わせていました。

IFERROR関数を使う場合:

=IFERROR(VLOOKUP(A2, B:C, 2, FALSE), "未登録")

IF+ISERRORで同じ処理を書く場合:

=IF(ISERROR(VLOOKUP(A2, B:C, 2, FALSE)), "未登録", VLOOKUP(A2, B:C, 2, FALSE))

IF+ISERRORだとVLOOKUPを2回書く必要があり、読みづらくなります。Excel 2007以降ならIFERROR関数を使うのが断然おすすめです。

IFERRORとIFNAの使い分け

IFNA関数は#N/Aエラーだけを対象にする関数です。

=IFNA(VLOOKUP(A2, B:C, 2, FALSE), "未登録")

#N/A以外のエラー(#REF!や#VALUE!など)はそのまま表示されます。「検索が見つからないのは想定内だけど、数式の参照ミスは検知したい」というケースではIFNA関数の方が安全ですよ。

使い分けの判断基準

迷ったときは、次の基準で選んでみてください。

  • すべてのエラーをまとめて非表示にしたい → IFERROR関数
  • #N/Aだけを処理し、他のエラーは残したいIFNA関数
  • エラーの種類を判定して処理を分けたいIF関数 + ERROR.TYPE関数
  • エラーの有無だけをTRUE/FALSEで判定したいISERROR関数

これらの関数の使い分けはIF・IFS・IFERROR・IFNAの使い分けでも整理しています。あわせて参考にしてみてくださいね。

まとめ

IFERROR関数は、Excelのエラー処理をシンプルにしてくれる便利な関数です。

この記事のポイントをおさらいしておきましょう。

  • IFERROR関数の構文は =IFERROR(値, エラーの場合の値) の2つの引数
  • エラーを空白にしたり、メッセージや数値を表示したりできる
  • VLOOKUP+IFERRORの組み合わせが実務で最も頻出
  • INDEX+MATCH+IFERRORで柔軟な検索にも対応
  • XMATCH版ならさらにシンプルに書ける
  • XLOOKUP関数なら第4引数でIFERRORが不要になるケースも
  • すべてのエラーをキャッチするため、使いどころには注意が必要
  • #N/Aだけを処理したい場合はIFNA関数を検討する

まずはVLOOKUP+IFERRORの組み合わせから試してみてください。エラーだらけだった集計表が、一気にスッキリしますよ。


この記事で紹介した関数・関連記事

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