Excel一覧 Excel関数 基本関数(IF、SUMなど)

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

Excelで表を作成していると、「#N/A(エヌエー)」というエラーに遭遇することがあります。これは「Not Available(該当なし)」という意味で、主に VLOOKUPMATCH などの検索関数で、検索結果が見つからなかったときに表示されます。

この「#N/A」をそのまま表示させてしまうと、見た目が悪くなったり、報告書や帳票で不適切に見えたりすることがあります。そこで使えるのが IF関数とISNA関数、IFERROR関数 です。

本記事では、「if関数 #n/aならば」という検索キーワードに沿って、#N/Aエラーを条件分岐で判定する方法を中心に、実務で役立つExcel関数の組み合わせや使い分けのコツを詳しく解説します。

✅ そもそも「#N/A」とは?意味と発生原因

・ #N/Aの意味

「Not Available(該当なし)」の略で、検索対象に値が存在しないときに返されるエラーです。

・ 主に発生する関数

  • VLOOKUP
  • HLOOKUP
  • LOOKUP
  • MATCH
  • XLOOKUP

◆ 例:

=VLOOKUP("A001", 商品表!A:B, 2, FALSE)

→ 「A001」が商品表に存在しない場合、結果は 「#N/A」 になります。


✅ IF関数で「#N/Aならば」を判定するには?

IF関数は通常、「=IF(条件, 真の場合, 偽の場合)」という形式で使いますが、「#N/Aかどうか」を判定するためには、単体では機能しません。そこで補助的に使うのが ISNA関数 または IFERROR関数 です。


【Excel】【初心者向け】ExcelのIF関数とは?使い方からよくある間違いまでやさしく解説!

ISNA関数とIF関数を組み合わせる方法

◆ 構文:

=IF(ISNA(数式), "該当なし", 数式)

この構文は、「数式が#N/Aエラーであるか」を判定します。

◆ 使用例:

=IF(ISNA(VLOOKUP(A2, 顧客一覧!A:B, 2, FALSE)), "未登録", VLOOKUP(A2, 顧客一覧!A:B, 2, FALSE))
  • 顧客コードが存在しない → 「未登録」と表示
  • 存在する → VLOOKUPの結果を表示

◆ 解説:

  • ISNA() は結果が #N/Aのとき TRUE を返す
  • IF() でその結果を判定して分岐処理が可能

◆ メリット:

  • 他のエラー(例:#REF!、#DIV/0!)はそのまま表示されるため、本来のエラーを見逃さない

【Excel】「IFNA」と「IF関数」を組み合わせる方法|エラー処理と条件分岐を同時に行う実務テクニック

✅ IFERROR関数を使って簡略化する方法

◆ 構文:

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

IFERROR関数は、#N/Aを含むすべてのエラーをまとめて処理できます。

◆ 使用例:

=IFERROR(VLOOKUP(A2, 顧客一覧!A:B, 2, FALSE), "未登録")
  • #N/A#DIV/0!#REF!などをすべて「未登録」に変える

◆ メリット:

  • 書き方がシンプル
  • 式が長くならず、初心者にも扱いやすい

◆ デメリット:

  • 他のエラーもすべて処理してしまうため、間違いに気付きにくくなる場合がある

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

✅ IFNA関数で「#N/A」だけを処理する方法

Excel 2013以降で使える IFNA 関数は、IFERROR と似ていますが、#N/Aのみを処理対象にするため、より安全です。

◆ 構文:

=IFNA(数式, #N/A時の値)

◆ 使用例:

=IFNA(VLOOKUP(A2, 商品表!A:B, 2, FALSE), "該当なし")

◆ メリット:

  • #N/Aだけを処理するので、構文ミスなどの他のエラーには気付ける
  • 安全かつ明快な構文で使いやすい

■実務で役立つ応用例

① 顧客名簿の自動照合

=IF(ISNA(VLOOKUP(B2, 名簿!A:C, 2, FALSE)), "未登録", VLOOKUP(B2, 名簿!A:C, 2, FALSE))

→ 登録の有無を自動判定。名簿作成、出欠管理に便利。


【Excel】IF関数とVLOOKUP関数の併用で柔軟なデータ処理を実現する方法|条件分岐×検索

② 商品コードの存在確認(空白制御付き)

=IF(B2="", "", IFNA(VLOOKUP(B2, 商品一覧!A:B, 2, FALSE), "不明"))

→ 入力がない行は空白にし、存在しない商品コードは「不明」と表示。請求書や納品書に最適。


【Excel】IFNAとVLOOKUPの組み合わせ完全ガイド|エラー対策で正確な表を作る方法

③ 除算処理+エラー制御を含めた構文

=IFERROR(A2/B2, "")

→ B2が0や空白で除算できないとき、空白にする。


■ISNA、IFERROR、IFNAの違いを比較

関数処理対象対象のエラー安全性利用可能バージョン
ISNA+IF#N/A限定的◎(安全)Excel 2003以降
IFERRORすべてのエラー#N/A, #DIV/0!△(万能だが注意)Excel 2007以降
IFNA#N/Aのみ#N/Aのみ◎(検索向き)Excel 2013以降

■よくある間違いとその対処法

・ 間違い1:IF関数だけで#N/Aを処理しようとする

=IF(VLOOKUP(A2, 商品表!A:B, 2, FALSE)="#N/A", "未登録", ...)

→ この方法では機能しません。#N/Aは文字列ではないため比較できない

正しくは:

=IF(ISNA(VLOOKUP(...)), "未登録", ...)

・ 間違い2:IFERRORで全てのエラーを隠してしまう

→ 本来の構文ミスや参照エラーも「未登録」と処理されてしまい、問題に気付きにくくなります

解決策: ISNAまたはIFNAで、エラーの種類を限定して処理しましょう。


■#N/Aを制御する構文テンプレートまとめ

使用目的推奨関数数式例
#N/Aのみに対応ISNA + IF=IF(ISNA(VLOOKUP(A2, 商品!A:B, 2, FALSE)), "未登録", VLOOKUP(...))
簡易処理(初心者向け)IFERROR=IFERROR(VLOOKUP(A2, 商品!A:B, 2, FALSE), "未登録")
安全かつ簡潔IFNA=IFNA(VLOOKUP(A2, 商品!A:B, 2, FALSE), "未登録")

■まとめ:IF関数で「#N/Aならば」を判定するコツとは?

  • 「#N/A」エラーはISNA関数で判定するのが王道
  • 簡潔に書きたいならIFERROR関数、安全に処理したいならIFNA関数がおすすめ
  • 実務では「空白時の制御」「見た目の改善」もあわせて工夫すると見やすくなる

Excel関数は見せ方・伝え方を制御するためのツールでもあります。「#N/A」エラーをうまく処理することで、誰が見ても分かりやすい・整った表が作れるようになります。今回の内容を、ぜひ日々の業務に役立ててください。

    -Excel一覧, Excel関数, 基本関数(IF、SUMなど)