📊つかえる関数.com

IFERRORとIFNAの使い分けは?

結論

IFERRORは全エラーを処理、IFNAは#N/Aのみ処理します。バグ発見のためIFNAの使用が推奨される場合があります。

エラー対処中級·

詳しい解説

IFERROR関数は全てのエラー(#N/A、#VALUE!、#REF!、#DIV/0!など)をキャッチして代替値を返すのに対し、IFNA関数は#N/Aエラーのみをキャッチします。VLOOKUP関数などで該当データが見つからない場合の#N/Aエラーだけを処理したい場合はIFNA関数を使用します。#REF!や#VALUE!などの本当のエラー(数式の誤り)はそのまま表示されるため、バグの発見が容易になります。IFERRORで全エラーを隠してしまうと、予期しない不具合を見逃す可能性があるため、状況に応じて使い分けることが重要です。Excel 2013以降で両方の関数が使用可能です。

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

バージョン対応

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

実務での使用例

VLOOKUP結果が見つからない場合だけ空白に(IFNA)

VLOOKUPで該当データがない場合のみ空白を表示。#REF!エラー(範囲指定ミス)などはそのまま表示されるため、数式のバグに気付きやすい

=IFNA(VLOOKUP(A2, マスタ!A:B, 2, FALSE), "")

全てのエラーを空白に(IFERROR)

全てのエラーを空白にする場合はIFERRORを使用。ただし、数式のミスも隠してしまうため注意が必要

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