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 2016 | Excel 2019 | Excel 2021 | Excel 2024 | Microsoft 365 |
|---|---|---|---|---|
| 対応 | 対応 | 対応 | 対応 | 対応 |
実務での使用例
VLOOKUP結果が見つからない場合だけ空白に(IFNA)
VLOOKUPで該当データがない場合のみ空白を表示。#REF!エラー(範囲指定ミス)などはそのまま表示されるため、数式のバグに気付きやすい
=IFNA(VLOOKUP(A2, マスタ!A:B, 2, FALSE), "")全てのエラーを空白に(IFERROR)
全てのエラーを空白にする場合はIFERRORを使用。ただし、数式のミスも隠してしまうため注意が必要
=IFERROR(VLOOKUP(A2, マスタ!A:B, 2, FALSE), "")