Excelで関数を使っていると避けられないのが「エラー表示」です。特に "VLOOKUP" や "XLOOKUP" などの検索系関数では、「#N/A」や「#VALUE!」などのエラーに直面することがよくあります。
こうしたエラーを見た目に出さないために使われるのが、IFERROR関数とIFNA関数です。どちらも「エラーを処理する」関数ですが、役割や対象となるエラーが異なるため、使い分けを理解しておくことが重要です。
この記事では、「IFNA IFERROR 違い」という検索意図に応えながら、両者の特徴や構文の違い、実務における使いどころ、注意点までを徹底的に解説します。
目次
- ✅ IFERROR関数とは?すべてのエラーを処理する万能関数
- ・基本構文
- ・除算時に「0割り」エラーを空白にする方法
- ✅ IFNA関数とは?「#N/A」専用のスマート関数
- ・基本構文
- ・VLOOKUPで未登録データを「なし」と表示する方法
- ■IFNAとIFERRORの違いを徹底比較
- ■実務での使い分け:どちらを使えばいい?
- ■IFNAが向いている場面
- ■よくある間違いとその対処法
- 1. IFNAを使っても他のエラーが消えない
- 2. IFERRORで全てのエラーを隠してしまい気付きにくくなる
- ■IFNAとIFERRORの併用も可能?
- ・例:#N/Aは「該当なし」、その他は「エラー」と表示
- ■IFNA/IFERRORを使ったテンプレート例(コピペOK)
- ■まとめ:IFNAとIFERRORは「使い分け」がポイント!
- ・最後に:関数は「目的に応じて選ぶ」ことが最も大切
✅ IFERROR関数とは?すべてのエラーを処理する万能関数
・基本構文
=IFERROR(数式, エラー時の値)
特徴
- すべてのエラーをキャッチして処理できる
- 代表的な対象エラー:
#N/A#DIV/0!#VALUE!#REF!#NAME?#NUM!
・除算時に「0割り」エラーを空白にする方法
=IFERROR(A2/B2, "")
B2が0や空白で #DIV/0! エラーになった場合に、空白を返して表の見栄えを整えます。
【Excel】【初心者でも簡単】IFERROR関数の使い方を徹底解説!Excelのエラーを見やすく整える実務テクニック
✅ IFNA関数とは?「#N/A」専用のスマート関数
・基本構文
=IFNA(数式, #N/Aエラー時の値)
特徴
- 「#N/A」エラーのみを対象に処理する
- 他のエラー(
#DIV/0!、#VALUE!など)には反応しない - 主に検索関数(VLOOKUP、XLOOKUP)と組み合わせて使う
・VLOOKUPで未登録データを「なし」と表示する方法
=IFNA(VLOOKUP(A2, 顧客一覧!A:B, 2, FALSE), "なし")
→ 顧客コードが存在しない場合(#N/A)は「なし」と表示。それ以外のエラーはそのまま表示。
【Excel】IFNA関数とは?VLOOKUPとの組み合わせで使い方を完全解説!
■IFNAとIFERRORの違いを徹底比較
| 比較項目 | IFERROR関数 | IFNA関数 |
|---|---|---|
| 処理対象のエラー | すべてのエラー(#DIV/0!, #REF!等含む) | 「#N/A」エラーのみ |
| 主な用途 | 計算・検索・参照など汎用エラー処理 | VLOOKUPやXLOOKUPの検索エラーに特化 |
| 利便性 | 万能で柔軟な処理が可能 | 意図しないエラーを見逃さずに済む |
| 推奨シーン | 除算、複雑な関数、複数関数の組み合わせ | 検索処理の見栄えを整える際に |
| 関数登場バージョン | Excel 2007以降 | Excel 2013以降 |
■実務での使い分け:どちらを使えばいい?
【IFERRORが向いている場面】
- 割り算(ゼロ除算)などで
#DIV/0!を隠したいとき - INDEXやMATCHなど複数関数を組み合わせた処理の中で、柔軟にエラーを処理したいとき
- 複数の種類のエラーが発生し得るケース
例:
=IFERROR(INDEX(B2:B100, MATCH(E2, A2:A100, 0)), "データなし")
MATCHで失敗したり、データがなかったりした場合にもすべて空白処理が可能です。
■IFNAが向いている場面
- VLOOKUPやXLOOKUPの検索で「#N/A」だけを処理したいとき
- 入力ミスなどの他のエラーは表示させて、修正のヒントとしたいとき
- 特定の「データなし」だけを丁寧に扱いたいとき
例:
=IFNA(VLOOKUP(D2, 社員マスタ!A:B, 2, FALSE), "該当なし")
他のミス(列指定や関数ミス)は検出させたままにできるため、安全性が高い使い方です。
■よくある間違いとその対処法
1. IFNAを使っても他のエラーが消えない
=IFNA(A2/B2, "エラー")
→ B2が「0」のときは #DIV/0! となり、IFNAでは処理されません。このような場合は IFERRORを使うべきです。
2. IFERRORで全てのエラーを隠してしまい気付きにくくなる
=IFERROR(VLOOKUP(D2, 顧客表!A:B, 2, FALSE), "なし")
→ 関数の記述ミス(例:列番号が大きすぎるなど)も「なし」と表示されるため、本来のエラーに気付けない場合があります。
チェックしたいエラーを残したいなら、IFNAが適切です。
■IFNAとIFERRORの併用も可能?
はい。以下のように IFNAを先に使って、IFERRORでそれ以外のエラーを処理する という構成も可能です。
・例:#N/Aは「該当なし」、その他は「エラー」と表示
=IFERROR(IFNA(VLOOKUP(A2, 顧客一覧!A:B, 2, FALSE), "該当なし"), "エラー")
→
- #N/A → 該当なし
- #REF!や#VALUE! → エラー
このように「エラーの種類ごとに処理内容を分ける」ことができます。
■IFNA/IFERRORを使ったテンプレート例(コピペOK)
| シーン | 数式例 |
|---|---|
| 顧客コードの存在チェック | =IFNA(VLOOKUP(A2, 顧客表!A:B, 2, FALSE), "未登録") |
| 平均単価の計算(ゼロ除算対応) | =IFERROR(売上金額/販売数量, "") |
| 検索エラーとその他エラーの両方に対応 | =IFERROR(IFNA(VLOOKUP(A2, 商品表!A:B, 2, FALSE), "なし"), "計算エラー") |
■まとめ:IFNAとIFERRORは「使い分け」がポイント!
| ポイント | IFERROR | IFNA |
|---|---|---|
| 処理対象 | すべてのエラー | #N/Aエラーのみ |
| 汎用性 | 高い(柔軟性あり) | 専用(検索系に特化) |
| セーフティ(安全性) | 他のエラーも隠れる可能性あり | 検索エラーだけを処理できる |
| 使い分けの指針 | すべてのエラーを柔らかく処理したいとき | 検索失敗だけを丁寧に処理したいとき |
・最後に:関数は「目的に応じて選ぶ」ことが最も大切
IFERRORとIFNAは、似ているようで全く違う特性を持っています。「すべてのエラーをまとめて処理する」ならIFERROR、「#N/Aだけを明示的に処理する」ならIFNA と使い分けることで、ミスを減らし、見やすく信頼性の高いExcelファイルを作成できます。
VLOOKUPやXLOOKUP、MATCH、INDEXなどと組み合わせて、柔軟でスマートなエラー処理を実現してみてください。