📊つかえる関数.com

エラー処理に使える関数は?

結論

IFERROR、ISERROR、IFNA等でエラー処理が可能です。全バージョンで使用可能。

エラー対処初級·

詳しい解説

IFERROR(値, エラー時の値)が最も汎用的です。ISERROR(値)はエラーかどうかをTRUE/FALSEで返します。IFNA(値, NA時の値)は#N/Aエラーのみ処理し、他のエラーはそのまま表示するため、VLOOKUP等で意図しないエラーを見逃しにくい利点があります。全バージョンで使用可能です。

旧バージョンでの代替方法

IF(ISERROR(...))パターン(全バージョン対応)Excel 2016以降

IFERROR関数が登場する以前(Excel 2003以前)の古典的な書き方です。現在のExcel 2016以降ではIFERRORの方が簡潔ですが、古いブックとの互換性が必要な場合に使います。

=IF(ISERROR(VLOOKUP(A2, マスタ!A:C, 2, FALSE)), "", VLOOKUP(A2, マスタ!A:C, 2, FALSE))

IF(ISNA(...))パターン(全バージョン対応)Excel 2016以降

#N/Aエラーのみを対象にする場合、ISNA関数とIF関数を組み合わせます。IFNAと同等の動作をしますが記述が長くなります。

=IF(ISNA(VLOOKUP(A2, マスタ!A:C, 2, FALSE)), "未登録", VLOOKUP(A2, マスタ!A:C, 2, FALSE))

よくあるエラーと対処法

IFERRORですべてのエラーを隠してしまう

原因: IFERROR("")で全エラーを空白にすると、#REF!(参照先削除)や#VALUE!(計算ミス)など本来対処が必要なエラーまで隠れます。

対処: #N/Aだけを処理したい場合はIFNAを使ってください。他のエラーは残すことで問題を早期発見できます。

IFERRORの第2引数が空文字""になっているのに0が表示される

原因: IFERRORの外側の数式が空文字""を数値として評価し、0に変換することがあります。

対処: TEXT関数やIF関数でセルの表示形式を明示的に制御するか、「0を非表示にする」設定(Excelオプション→詳細設定)を使ってください。

XLOOKUPと組み合わせた場合にIFERRORが不要

原因: XLOOKUP(Excel 2021/2024/365対応)には見つからない場合の戻り値を直接指定できる第4引数があります。

対処: XLOOKUPが使える環境では =XLOOKUP(A2, マスタ!A:A, マスタ!B:B, "未登録") のように直接指定し、IFERRORのネストを避けられます。

執筆・検証:田中 けんた|Excel歴15年・MOS資格保持

バージョン対応

バージョン対応状況
Excel 2016Excel 2019Excel 2021Excel 2024Microsoft 365
対応対応対応対応対応

実務での使用例

VLOOKUPのエラーを非表示にする

商品マスタに未登録の商品コードでも空白表示にして見栄えを良くする

=IFERROR(VLOOKUP(A2, マスタ!A:C, 2, FALSE), "")

IFNA関数で#N/Aだけを処理

#VALUE!や#REF!は残して#N/Aだけ「未登録」に変換

=IFNA(VLOOKUP(A2, マスタ!A:C, 2, FALSE), "未登録")