Excel一覧 Excel関数 エラー処理関数(IFERRORなど)

【Excel】IFNA関数とIFERROR関数の違いとは?Excelエラー対処の使い分けガイド

Excelで関数を使っていると避けられないのが「エラー表示」です。特に "VLOOKUP" や "XLOOKUP" などの検索系関数では、「#N/A」や「#VALUE!」などのエラーに直面することがよくあります。

こうしたエラーを見た目に出さないために使われるのが、IFERROR関数IFNA関数です。どちらも「エラーを処理する」関数ですが、役割や対象となるエラーが異なるため、使い分けを理解しておくことが重要です。

この記事では、「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は「使い分け」がポイント!

ポイントIFERRORIFNA
処理対象すべてのエラー#N/Aエラーのみ
汎用性高い(柔軟性あり)専用(検索系に特化)
セーフティ(安全性)他のエラーも隠れる可能性あり検索エラーだけを処理できる
使い分けの指針すべてのエラーを柔らかく処理したいとき検索失敗だけを丁寧に処理したいとき

・最後に:関数は「目的に応じて選ぶ」ことが最も大切

IFERRORとIFNAは、似ているようで全く違う特性を持っています。「すべてのエラーをまとめて処理する」ならIFERROR「#N/Aだけを明示的に処理する」ならIFNA と使い分けることで、ミスを減らし、見やすく信頼性の高いExcelファイルを作成できます。

VLOOKUPやXLOOKUP、MATCH、INDEXなどと組み合わせて、柔軟でスマートなエラー処理を実現してみてください。

    -Excel一覧, Excel関数, エラー処理関数(IFERRORなど)