Excelでエラーを見事に制御!IFERROR関数の使い方をマスターしよう

ExcelのIFERROR関数は、数式がエラーになった場合だけ指定した値へ置き換え、エラーがなければ元の計算結果を返します。基本形は=IFERROR(確認する数式,エラー時の値)です。たとえば=IFERROR(A2/B2,"計算不可")なら、割り算が成功したときは結果を、0除算などで失敗したときは「計算不可」を表示します。見た目を整えるだけでなく、利用者へ次の行動が分かる代替表示を返すことが大切です。IFERRORは原因そのものを修復しないため、元のエラーを確認してから使います。

目次

IFERRORの構文

=IFERROR(value, value_if_error)
  • value:通常どおり計算または検索したい数式・値です。
  • value_if_error:valueがエラーになったときに返す文字列、数値、空文字列、別の数式です。

valueが正常ならvalue_if_errorは表示されません。Microsoftの公式説明では、IFERRORは#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME?、#NULL!を対象にします。原因の異なるエラーをまとめて処理できる反面、参照切れや関数名の誤入力まで隠せるため、適用範囲を決めます。

割り算のエラーを分かりやすくする

売上を件数で割る例では、分母が0または空欄だと#DIV/0!になる場合があります。=IFERROR(B2/C2,"未計算")とすれば、正常な比率はそのまま残り、計算できない行だけ未計算と表示できます。代替値を0にすると「実績が本当に0」と「計算不能」が区別できません。集計やグラフへ使う列では、空白、0、説明文のどれが要件に合うかを先に決めます。

分母が未入力の間だけ空欄にしたいなら=IF(C2="","",IFERROR(B2/C2,"要確認"))のように入力状態とエラーを分ける方法があります。ただし式を複雑にするほど保守が難しくなります。分母の入力規則や元データの品質を直せるなら、そちらを優先します。

VLOOKUPの未登録表示に使う

商品コードを検索する例は=IFERROR(VLOOKUP(E2,$A$2:$C$100,3,FALSE),"未登録")です。完全一致の検索で見つからなければ通常は#N/Aになりますが、未登録と表示できます。ただし表範囲の指定ミス、列番号の誤り、参照切れも同じ未登録へ置き換わる場合があります。検索対象に存在しないことだけを処理したいならIFNAを検討します。

IFNAとの使い分け

IFNAは#N/Aだけを指定値へ置き換え、それ以外のエラーは残します。商品が見つからないことが業務上想定済みで、#REF!や#VALUE!は設計ミスとして気付きたい場面に向きます。=IFNA(VLOOKUP(E2,$A$2:$C$100,3,FALSE),"未登録")なら、検索不一致と別のエラーを区別できます。

「画面にエラーを出したくない」という理由だけでIFERRORを全式へ巻くと、壊れた参照が長期間見つからないことがあります。想定する失敗が一種類なら専用の処理を選び、予測できないエラーは監査できる形で残します。

XLOOKUPでは見つからない場合を直接指定できる

新しいExcelでXLOOKUPを使える場合、構文の第4引数if_not_foundへ未登録時の表示を指定できます。例は=XLOOKUP(E2,A2:A100,C2:C100,"未登録")です。これなら検索不一致だけを処理し、戻り範囲の問題など他のエラーを無条件に隠しません。XLOOKUPはExcel 2016と2019では利用できないため、共有先の版を確認します。

空白を返す式の意味

エラーを見せたくないときは=IFERROR(A2/B2,"")のように空文字列を返せます。見た目は空白でも、完全な未使用セルとは動作が異なる場合があります。件数、並べ替え、フィルター、グラフ、CSV出力、他システム連携で空文字列がどう扱われるかを確認します。公式説明ではvalueまたはvalue_if_errorに空セルを渡した場合、IFERRORは空文字列として扱います。

代替値にスペースを入れて空白に見せる方法は、検索や比較で見つけにくい不要文字を作ります。空欄表示が必要なら空文字列を使い、後工程が真の空セルを要求するなら数式列と出力列を分けるなど設計を見直します。

代替値に別の数式を使う

value_if_errorには固定文字だけでなく別の数式も指定できます。主検索が失敗したら予備表を検索する構成も可能です。ただし入れ子を深くすると、どの検索で失敗したか追跡しにくくなります。主キー、検索範囲、完全一致、重複、予備値の優先順位を文章で残し、途中結果を補助列へ分ける方が安全です。

動的配列と配列数式

Microsoftの公式説明では、valueが配列数式の場合、IFERRORは指定範囲の各要素に対する結果の配列を返します。現在のMicrosoft 365では左上セルへ数式を入力し、結果が周囲へスピルする構成があります。出力先に値があると#SPILL!など別の問題になるため、範囲を空けます。古い版では配列数式の確定方法が異なるので、共同利用者の版を確認します。

数値・文字列・日付の型をそろえる

正常時に数値、エラー時に「未登録」という文字列を返す列は、型が混在します。表示には便利でも、合計、平均、ピボットテーブル、Power Query、外部連携で扱いにくくなります。計算用列は#N/Aや空白を維持し、表示用列で説明文を付ける方法も検討します。日付列へ0を返すと基準日付として表示される場合があるため、表示形式も確認します。

IFERRORで隠してはいけないエラー

  • #REF!:削除した行・列・シートなどへの参照切れを疑います。
  • #NAME?:関数名や定義名の誤り、引用符の不足などを確認します。
  • #VALUE!:数値と文字列など、引数の型や不要文字を確認します。
  • #NUM!:数値範囲や反復計算など、計算条件を確認します。
  • #DIV/0!:分母が0または未入力かを確認します。
  • #N/A:検索値が本当に存在しないか、表記揺れや型違いがないかを確認します。

Excelのエラーチェック、数式の検証、参照元・参照先の確認を使い、IFERRORを追加する前の状態で原因を調べます。文字列の数字、全角・半角、前後スペース、日付の実体、完全一致の指定も確認します。

エラー件数を見える化する

利用者向けの表示を整えても、管理者はエラー件数を把握できるようにします。元数式を補助列へ置き、エラー判定列や条件付き書式で要確認行を数える方法があります。月次処理なら、総件数、未登録件数、0除算件数、参照エラー件数を記録し、急増を検知します。IFERRORの戻り文字列を数えるだけでは、異なる原因が混ざる点に注意します。

よくある失敗

  • 第2引数の文字列を引用符で囲まず#NAME?になった。
  • 未登録だけを処理したつもりが、参照切れまで「未登録」に変わった。
  • 空文字列を返した列を、完全な空セルとして後工程へ渡した。
  • 代替値0が実績0と混ざり、平均や比率が変わった。
  • XLOOKUPを使えない旧版へブックを渡し、関数互換性で問題が出た。
  • 数式を全列へコピーしたが、絶対参照と相対参照がずれた。

安全な確認手順

  1. 原本を別名保存し、エラーが出ている代表行を控えます。
  2. エラー種類と原因を確認し、業務上想定される失敗かを決めます。
  3. IFERROR、IFNA、XLOOKUPのif_not_found、入力規則のどれが適切か選びます。
  4. 正常値、0、空欄、未登録、参照切れ、文字列混入のテストデータで確認します。
  5. 合計、平均、フィルター、グラフ、CSV、共有先のExcel版まで確認します。
  6. エラー件数を別に監視できることを確認してから本番範囲へ反映します。

完了条件

IFERRORの設定完了は、セルからエラー表示が消えたことではありません。正常値が変わらず、想定したエラーだけが理解しやすい値へ変わり、想定外の参照切れや型違いを発見でき、集計結果と後工程が正しく、共有先のExcel版でも再現できる状態です。元エラーと代替値の意味を列見出しや手順書へ残します。

公式情報・参考資料

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次