Excel IFERROR関数の使い方|エラーを非表示にする方法と実践テクニック

Excel IFERROR関数の使い方|エラーを非表示にする方法と実践テクニック

ExcelでVLOOKUPや割り算を使うと、#N/Aや#DIV/0!が並んで見づらくなることがありますよね。IFERROR関数を使えば、エラーを空白や0、任意のメッセージに置き換えられます。この記事では、基本構文からVLOOKUPとの組み合わせ、よくある失敗の直し方、実務ですぐ使えるテンプレートまで、初心者にもわかりやすく整理して解説します。

目次

IFERRORの構文と基本の書き方【コピペOK】

IFERRORの構文と基本の書き方【コピペOK】

結論から言うと、IFERRORは『数式が正常なら結果を返し、エラーなら別の表示に置き換える』関数です。

検索、集計、割り算など幅広く使え、1つ覚えるだけで表の見た目と実用性が大きく上がります。

Microsoftも、IFERRORは数式がエラー評価になった場合に指定した値を返す関数と案内しています。参考:Microsoft SupportのIFERROR解説

IFERROR関数の構文と引数の意味

構文は=IFERROR(value, value_if_error)です。

valueには元の数式を入れ、value_if_errorにはエラー時に表示したい値を入れます。

たとえばVLOOKUPやA2/B2が正常なら結果を返し、#N/Aや#DIV/0!なら空白や0に差し替わります。

この記事ではJSON仕様に合わせ、文字列部分をシングルクォートで表記しています。

コピペで使えるサンプル数式

まずは次の3つを覚えるだけで十分です。

=IFERROR(VLOOKUP(A2,$F2:H100,2,FALSE),′′)該当なしを空白にする

  • =IFERROR(A2/B2,0)割り算エラーを0にする
  • =IFERROR(INDEX(C2:C100,MATCH(A2,A2:A$100,0)),’未登録’) 検索失敗時にメッセージ表示

    実務では、空白は見た目重視、0は計算継続重視、メッセージは確認重視と使い分けると迷いません。

    30秒で理解する動作イメージ

    IFERRORは、まず中の数式を普通に実行し、問題なければその結果を返します。

    もし途中で#N/Aや#REF!などのエラーが出たら、そこで止まって指定した代替表示に切り替える仕組みです。

    つまり『失敗したときの保険を後ろに付ける』イメージで理解すると、ほとんどの場面で迷わず使えます。

    IFERRORで処理できるエラー7種類一覧

    IFERRORで処理できるエラー7種類一覧

    IFERRORが処理できるのは、主に7種類の代表的な数式エラーです。

    具体的には#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME?、#NULL!です。

    Microsoftの公式説明でもこの7種類が対象とされています。参考:IFERRORの対応エラー一覧

    各エラーの発生原因と具体例

    エラー主な原因例#N/A検索値が見つからないVLOOKUPで該当データなし#VALUE!文字列と数値の型不一致’A’+1のような計算#REF!参照先セルが無効参照列を削除した後の数式#DIV/0!0や空白で割る=A2/B2でB2が0#NUM!不正な数値条件成立しない金融関数#NAME?関数名や名前の入力ミスVLOKUPと誤記#NULL!範囲指定の記号ミス半角スペースで範囲交差を指定

    発生原因を知ると、隠すべきエラーか、元の数式を直すべきエラーかを判断しやすくなります。

    処理すべきエラーと注意が必要なエラーの違い

    結論として、検索結果がないだけの#N/Aや、一時的な#DIV/0!はIFERRORで処理しやすいエラーです。

    一方で#REF!や#NAME?は参照切れや入力ミスの可能性が高く、隠すと不具合の発見が遅れます。

    見た目を整える目的で全部消すのではなく、原因を把握したうえで必要なものだけ処理するのが安全です。

    VLOOKUP×IFERRORの使い方と組み合わせ方

    VLOOKUP×IFERRORの使い方と組み合わせ方

    IFERRORが最も活躍するのは、VLOOKUPで検索結果が見つからない場面です。

    顧客コード、商品番号、社員IDなど、実務では1件でも未登録があると#N/Aが大量発生しやすいためです。

    VLOOKUPの基本構文や注意点は公式でも確認できます。参考:Microsoft SupportのVLOOKUP解説

    VLOOKUP+IFERRORの基本形

    基本形は=IFERROR(VLOOKUP(A2,$F2:H$100,2,FALSE),”)です。

    この式ならA2の検索値が見つかったときは結果を返し、見つからないときだけ空白表示になります。

    FALSEを付けて完全一致にするのが実務では基本で、近似一致のままだと誤取得の原因になりやすいです。

    該当なしを「空白」「0」「メッセージ」に変換する方法

    表示内容は用途で決めるのがコツです。

    空白にする =IFERROR(VLOOKUP(A2,$F2:H100,2,FALSE),′′)

  • 0にする=IFERROR(VLOOKUP(A2,F2:H100,2,FALSE),0)
  • メッセージにする=IFERROR(VLOOKUP(A2,F2:H$100,2,FALSE),’該当なし’)

    帳票では空白、集計では0、入力チェックではメッセージにすると、後工程での扱いが安定します。

    VLOOKUP+IFERRORがうまく動かないときの対処法

    うまく動かない原因の多くは、VLOOKUP側の条件ミスです。

    検索列が表の一番左にあるか確認するFALSEで完全一致にしているか確認する全角半角、前後スペース、数値と文字列の混在を見直す列番号が表範囲内か確認する

    IFERRORを外して元のVLOOKUPだけで試すと、どこで失敗しているか切り分けやすくなります。

    INDEX MATCH×IFERRORの使い方

    INDEX MATCH×IFERRORの使い方

    検索列が左にない表では、VLOOKUPよりINDEX MATCHの方が柔軟です。

    列挿入に強く、戻り列番号のズレも起きにくいため、管理しやすい数式を作れます。

    INDEX MATCH+IFERRORの書き方

    基本形は=IFERROR(INDEX($C2:C100,MATCH(A2,A2:A$100,0)),’該当なし’)です。

    MATCHで行番号を探し、INDEXで対応する値を返し、見つからないときだけIFERRORで置き換えます。

    検索列と戻り列が離れていても対応できるため、商品マスタや人事データで特に便利です。

    VLOOKUPとINDEX MATCHはどちらを使うべきか

    結論は、表が単純ならVLOOKUP、柔軟性重視ならINDEX MATCHです。

    VLOOKUPは初心者でも読みやすい反面、左から右にしか検索できません。

    Microsoftも、戻り列が検索列より左にあるならVLOOKUPではなくINDEXとMATCHの併用を案内しています。参考:Microsoft Supportの比較解説

    割り算エラー(#DIV/0!)をIFERRORで処理する方法

    割り算エラー(#DIV/0!)をIFERRORで処理する方法

    達成率や構成比では、分母が0や空白になるだけで#DIV/0!が出ます。

    このケースは入力途中でよく起こるため、IFERRORで見た目を整える効果が特に大きい場面です。

    割り算エラーを0または空白にする数式

    0にするなら=IFERROR(A2/B2,0)、空白にするなら=IFERROR(A2/B2,”)が基本です。

    ただし分析用途では、空白にすると平均や件数の扱いが変わることがあるため、集計先のルールを先に決めると安全です。

    見た目だけでなく後続計算まで考えるなら、0にするか空白にするかで結果が変わる点を意識してください。

    達成率・構成比計算での活用例

    たとえば売上達成率なら=IFERROR(B2/C2,0)で、目標未入力の行でも表全体を崩さずに表示できます。

    構成比なら=IFERROR(B2/SUM($B2:B$10),0)とすれば、総計が0の月でもエラーを防げます。

    月次レポートやKPI表では、入力途中の数日間だけでも見やすさが大きく改善されます。

    IFERRORのネスト(入れ子)で複数条件を処理する

    IFERRORのネスト(入れ子)で複数条件を処理する

    複数の候補表を順番に検索したいときは、IFERRORを入れ子にして使えます。

    1つ目で見つからなければ2つ目、さらに見つからなければ3つ目という流れを1本の式で表現できます。

    複数のVLOOKUPを順番に検索する書き方

    たとえば本店表、支店表、外部表の順で探すなら、=IFERROR(VLOOKUP(A2,$F2:H100,2,FALSE),IFERROR(VLOOKUP(A2,J2:L100,2,FALSE),VLOOKUP(A2,N2:P$100,2,FALSE)))の形で書けます。

    この方法は、マスタが分かれている現場で便利ですが、参照先が増えるほど計算負荷と可読性は下がります。

    ネストが深くなりすぎる場合の代替案

    結論として、3階層を超えたら式よりデータ構造を見直す方が楽です。

    代表的な代替案は、検索表を1つに統合する、補助列を作る、XLOOKUPのif_not_foundを使う、Power Queryで前処理する、の4つです。

    特にMicrosoft 365環境ならXLOOKUPは左右どちらにも検索でき、未検出時の戻り値も指定できるため整理しやすいです。参考:Microsoft SupportのXLOOKUP解説

    IFERROR・IFNA・ISERRORの違いと使い分け

    IFERROR・IFNA・ISERRORの違いと使い分け

    似た関数は多いですが、使い分けは意外とシンプルです。

    全部のエラーを一括処理したいならIFERROR、#N/Aだけを個別処理したいならIFNA、エラー判定だけしたいならISERRORと覚えておけば十分です。

    3つの関数の機能比較表

    関数役割向いている場面IFERRORほぼ全エラーを別表示に置換検索や除算をまとめて整えたいIFNA#N/Aだけを置換検索失敗だけ処理したいISERRORエラーかどうかをTRUEかFALSEで返すIF関数と組み合わせて分岐したい

    ISERRORは判定専用なので、表示を置き換えるにはIFと組み合わせる必要があります。

    結論:基本はIFERROR、#N/AだけならIFNA

    最初に選ぶならIFERRORで問題ありません。

    ただし、#REF!や#NAME?のような重大エラーは残しておき、検索失敗の#N/Aだけ処理したい場面ではIFNAの方が安全です。

    たとえばVLOOKUPの未登録だけを『該当なし』にし、参照切れはそのまま見つけたい帳票ではIFNAが適しています。

    Excel 2007以前での代替方法

    IFERRORはExcel 2007以降で使えるため、それ以前では=IF(ISERROR(元の式),代替値,元の式)で代用します。

    ただし同じ式を2回書くことになるため、長いVLOOKUPやINDEX MATCHでは管理がかなり大変です。

    古いファイル互換が必要なとき以外は、IFERRORを使える環境へ寄せた方が保守しやすくなります。

    IFERRORが効かない?よくあるトラブルと解決策

    IFERRORを入れても思った通りにならない原因は、式の外側ではなく内側にあることがほとんどです。

    大切なのは、IFERRORそのものを疑う前に、元の数式が何のエラーを返しているかを確認することです。

    IFERRORを入れてもエラーが消えない場合

    まず確認したいのは、IFERRORが数式全体を囲めているかです。

    たとえば一部だけ囲っていると、外側で別のエラーが出て処理できません。

    また、セルの表示形式や手入力のエラー文字列はIFERRORでは消せないため、元データ側の修正が必要です。

    正常な値まで置き換わってしまう場合

    これは『本来残すべきエラーまで一括で隠している』状態です。

    特に#REF!や#NAME?を空白にすると、列削除や関数名ミスに気づけなくなります。

    検索失敗だけを隠したいならIFNAへ切り替えると、正常値と重大エラーの判別がしやすくなります。

    数式が長くなりすぎて管理できない場合

    長い数式は、修正に5分以上かかるようなら整理対象です。

    補助列で途中結果を分ける検索表を統合する名前付き範囲を使うXLOOKUPやPower Queryへ置き換える

    式を短くするだけで、引き継ぎやレビューの時間を大幅に減らせます。

    コピペで使えるIFERROR実用数式テンプレート10選

    コピペで使えるIFERROR実用数式テンプレート10選

    ここでは、実務で使う頻度が高いテンプレートをまとめて紹介します。

    そのまま流用しやすいように、検索系、計算系、応用系の3パターンに分けて整理しました。

    検索系テンプレート(VLOOKUP/XLOOKUP)

    =IFERROR(VLOOKUP(A2,$F2:H100,2,FALSE),′′)

  • =IFERROR(VLOOKUP(A2,F2:H100,2,FALSE),0)
  • =IFERROR(VLOOKUP(A2,F2:H100,2,FALSE),′該当なし′)
  • =XLOOKUP(A2,F2:F100,G2:G$100,’該当なし’)

    XLOOKUPが使える環境では、未検出時の表示を関数標準で指定できるため、IFERRORなしでも書ける場面があります。

    計算系テンプレート(除算/集計)

    =IFERROR(A2/B2,0) 割り算エラーを0にする=IFERROR(A2/B2,”) 割り算エラーを空白にする=IFERROR(B2/SUM($B2:B$10),0) 構成比を安全に計算する

    集計表では、0表示にするか空白にするかでピボットや平均値の扱いが変わるため、帳票ルールを統一しましょう。

    応用系テンプレート(ネスト/配列)

    =IFERROR(INDEX($C2:C100,MATCH(A2,A2:A100,0)),′未登録′)

  • =IFERROR(VLOOKUP(A2,F2:H100,2,FALSE),IFERROR(VLOOKUP(A2,J2:L$100,2,FALSE),’未登録’))=IFERROR(A2:A10/B2:B10,0) 配列計算のエラー対策

    配列や複数検索に使うと便利ですが、式が複雑になるほど補助列や関数の見直しも検討すると管理しやすくなります。

    まとめ:IFERROR関数を使いこなす3つのポイント

    最後に重要点を3つに絞ると、IFERRORはかなり使いやすくなります。

    基本形はIFERROR(元の式,代替表示)と覚える#N/Aや#DIV/0!は処理しやすいが、#REF!や#NAME?は安易に隠さない数式が長いときはネストを増やす前に表構造や関数選択を見直す

    まずはVLOOKUPと割り算の2パターンから試すと、業務表の見た目と使いやすさがすぐ改善します。

  • よかったらシェアしてね!
    • URLをコピーしました!
    • URLをコピーしました!

    この記事を書いた人

    コメント

    コメントする

    目次