Excel一覧 Excel操作・関数 エラー処理関数(IFERRORなど) 関数の使い方

【Excel】Excelで「#N/A」をIF関数で判定する方法|エラー処理で見やすく整った表を作る!

ExcelでVLOOKUPやMATCHを使った検索を行うと、「#N/A」というエラーに遭遇することがよくあります。これは「該当データがない」というだけなのに、そのまま表に表示されると見た目が悪く、報告書や印刷物で恥ずかしい思いをすることもあります。

「#N/Aが出たら空白やメッセージを表示したい」
「IF関数で#N/Aを判定し、条件によって表示内容を変えたい」

このようなニーズに応えるのが、ISNA関数やIFNA関数とIF関数の組み合わせです。

この記事では「excel #n/a 判定 if」という検索意図に合わせて、

✅ 「#N/A」の意味と発生原因
✅ IF関数で「#N/A」を判定する基本と応用
✅ ISNA、IFNA、IFERRORの違い
✅ 実務で役立つ活用事例
✅ よくある間違いと注意点

初心者にもわかりやすく徹底解説します。

✅ 「#N/A」とは?

◆ 意味

「Not Available(該当なし)」の略で、主に検索関数(VLOOKUP、MATCH、XLOOKUPなど)で検索結果が見つからなかった時に表示されるエラーです。

◆ 発生する例

=VLOOKUP("A001", 顧客表!A:B, 2, FALSE)

顧客表に「A001」が存在しない場合 → **「#N/A」**が返されます。


✅ なぜ「#N/A」を処理する必要があるのか?

「#N/A」は誤りではありませんが、次の問題があります。

✅ 表が見づらくなる
✅ グラフやピボットテーブルで集計が崩れる
✅ 印刷・提出資料で見栄えが悪くなる
✅ 関数の入れ子で他の処理に影響を与える

そのため、**「#N/Aが出た場合は他の値を表示する」**というエラー処理が実務で必須となります。


✅ IF関数で「#N/A」を判定する方法

・IF関数だけでは「#N/A」を直接判定できない

以下のように書いても正しく動作しません:

=IF(VLOOKUP(A2, 顧客表!A:B, 2, FALSE)="#N/A", "未登録", "登録済")

理由: 「#N/A」は文字列ではなく、エラー値であるため比較不可。


【Excel】IF関数で「#N/Aならば」を判定する方法とは?エラー制御で見やすいExcel表を作ろう

✅ ISNA関数との組み合わせが基本

・ ISNA関数とは

=ISNA(値)

値が 「#N/A」ならTRUE、それ以外はFALSEを返します。


【Excel】IFNA関数とは?VLOOKUPとの組み合わせで使い方を完全解説!

・ IF関数×ISNAで「#N/A」を判定する構文

=IF(ISNA(数式), "エラー時の表示", 数式)

・VLOOKUPで「未登録」表示する方法

=IF(ISNA(VLOOKUP(A2, 顧客一覧!A:B, 2, FALSE)), "未登録", VLOOKUP(A2, 顧客一覧!A:B, 2, FALSE))
  • A2の顧客コードを検索
  • 見つからなければ「未登録」
  • 見つかればVLOOKUPの結果を表示

✅ IFNA関数を使う方法(Excel 2013以降推奨)

・ IFNA関数とは

=IFNA(数式, エラー時の値)

「#N/A」のみを対象に処理する関数で、IF×ISNAの組み合わせをより簡潔に記述可能。


【Excel】IFNA関数とは?VLOOKUPとの組み合わせで使い方を完全解説!

・IFNAで「該当なし」表示する方法

=IFNA(VLOOKUP(A2, 商品表!A:B, 2, FALSE), "該当なし")
  • 「#N/A」 →「該当なし」
  • その他のエラー(#DIV/0! など)は処理されずそのまま表示

■IFERROR関数との違い

・ IFERRORとは

=IFERROR(数式, エラー時の値)

「すべてのエラー」を処理できる万能型ですが、間違った参照エラー(#REF!)や除算エラー(#DIV/0!)も処理してしまうため、エラーに気付きにくくなるリスクがあります。


・ 違いを表で比較

項目IFNAIFERRORIF(ISNA(...))
処理対象#N/Aのみすべてのエラー#N/Aのみ
記述の簡潔さ△(二重記述が必要)
安全性◎(安全)△(エラーを隠す)◎(安全)
バージョン対応Excel 2013以降Excel 2007以降全バージョン

■【実務で役立つ活用事例】

① 名簿チェックで「未登録」を表示

=IF(ISNA(VLOOKUP(B2, 名簿!A:C, 2, FALSE)), "未登録", VLOOKUP(B2, 名簿!A:C, 2, FALSE))
  • B2の名前を名簿で検索
  • 見つからない場合は「未登録」
  • 見つかった場合は名前を表示

② 商品管理で「データなし」を表示(IFNA簡潔版)

=IFNA(VLOOKUP(D2, 商品一覧!A:B, 2, FALSE), "データなし")
  • 商品コードが見つからなければ「データなし」
  • 見つかれば単価を表示

③ MATCH関数で順位検索+空白処理

=IFNA(MATCH(G2, 商品マスタ!A:A, 0), "")
  • 商品コードG2が見つからなければ空白
  • 見つかれば順位(行番号)を返す

④ 集計資料で除算エラーと#N/Aを処理(IFERROR使用)

=IFERROR(VLOOKUP(A2, 売上表!A:C, 3, FALSE)/B2, "")
  • VLOOKUPで金額を取得しB2で除算
  • #N/A、#DIV/0! などすべてのエラーを空白に置き換え

■よくある間違いと注意点

・ IFで「=“#N/A”」としてしまう

× =IF(VLOOKUP(...)="#N/A", ...)
→ 比較できず失敗します。

ISNAやIFNAを使うのが正解。


・ IFERRORでエラーを隠しすぎてしまう

IFERRORはすべてのエラーを処理してしまうため、参照エラーや構文ミスが発見できなくなることがあります。

VLOOKUPなどの検索用途ではIFNAを使う方が安全です。


・ 「空白」と「0」の使い分け

  • ""(空白):集計に含まれない
  • 0(ゼロ):集計に含まれる

資料用途・集計用途に応じて使い分けましょう。


■【まとめ】Excelで「#N/A」をIF関数で判定する極意

「#N/A」は検索結果がないだけでエラーではないが、見た目が悪いので処理する
✅ IF関数単体では処理できないので ISNAまたはIFNA関数を併用する
IFNAは簡潔で安全IFERRORは万能だが注意が必要
✅ 実務の請求書、名簿管理、報告資料で活用すれば見栄えと作業効率が向上


・今日から使えるサンプル構文集

用途数式例
顧客管理で「未登録」表示=IFNA(VLOOKUP(A2, 顧客!A:B, 2, FALSE), "未登録")
商品コードの有無で空白処理=IFNA(MATCH(D2, 商品マスタ!A:A, 0), "")
除算エラーと#N/A対応(IFERROR)=IFERROR(VLOOKUP(A2, 売上表!A:C, 3, FALSE)/B2, "")

今回の方法をマスターすれば、「#N/A」エラーで汚れたExcelファイルが一気に見やすく整います。
ぜひ実務で活用し、業務効率化を加速させてください。

-Excel一覧, Excel操作・関数, エラー処理関数(IFERRORなど), 関数の使い方