【Excel】エラー「#N/A」を消したい!VLOOKUPとIFERROR関数を組み合わせる解決策

【Excel】エラー「#N/A」を消したい!VLOOKUPとIFERROR関数を組み合わせる解決策
🛡️ 超解決

ExcelでVLOOKUP関数を使っていると、必ずと言っていいほど直面するのが「#N/A」エラーです。データが見つからないことを示すこのエラーは、計算結果を汚すだけでなく、その後の合計計算(SUM等)をエラーで停止させてしまいます。エラーの原因を論理的に解明し、IFERROR関数やXLOOKUP関数を使って「エラーを空白や0に置き換える」プロのテクニックを詳細に解説します。

  • ⏱ 解決時間: 3分
  • 💻 対象ツール: Excel 全バージョン / Google スプレッドシート
  • 🛠 難易度: 初級〜中級(関数の組み合わせ)
  • ✅ 期待効果: 表の見栄え改善、集計エラーの防止、データ不備の特定

1. なぜ「#N/A」エラーが出るのか? その正体

「#N/A」は Not Available(利用不能)の略です。VLOOKUP関数においては、「指定した検索値が、検索範囲の左端列に存在しない」場合に発生します。

一見データがあるのにこのエラーが出る場合は、以下の3つの不一致を疑う必要があります。

  • 余計なスペース: 「商品A」と「商品A 」(後ろに半角スペース)は別物と判断されます。
  • データ型の違い: 検索値が「数値」で、範囲が「文字列」として保存されているケースです。
  • 完全一致の指定漏れ: VLOOKUPの第4引数に「FALSE」を入れ忘れていると、予期せぬ挙動になります。

2. 解決手順①:IFERROR関数で「エラーを隠す」

もっとも汎用性が高く、どのバージョンのExcelでも使える標準的な解決策です。

構文: =IFERROR(本来の数式, エラーの代わりに出す値)

具体的な書き方例

通常のVLOOKUPをIFERRORで囲みます。

=IFERROR(VLOOKUP(A2, D:E, 2, FALSE), "")

この数式では、検索結果が見つからない場合、エラーメッセージの代わりに「””(空白)」が表示されます。もし「未登録」と出したいなら "未登録"、計算に影響させたくないなら 0 を指定します。

3. 解決手順②:XLOOKUP関数を使う(Office 2021 / 365以降)

最新のExcelを使っているなら、VLOOKUPの弱点を克服したXLOOKUP関数を使うのが正解です。XLOOKUPには「見つからない場合の処理」が標準機能として組み込まれています。

数式: =XLOOKUP(A2, D:D, E:E, "なし")

第4引数にエラー時の値を直接書き込めるため、IFERRORを重ねる必要がなく、数式がシンプルになります。

4. 解決手順③:データ自体の「汚れ」を掃除する

「見た目では同じなのに見つからない」場合は、データの中身を揃える必要があります。

  1. TRIM関数でスペースを消去: =TRIM(A2) を使い、前後の不要な空白を削除します。
  2. 数値を数値として扱う: 検索値が文字列になっている場合は、VALUE(A2) で数値化してから検索します。
  3. 検索範囲を絶対参照にする: $D$2:$E$100 のように「$」を付けて固定しないと、数式をコピーした際に範囲がズレて#N/Aが発生します。

5. 対処法別の比較・メリットデメリット

手法 メリット デメリット
IFERROR + VLOOKUP 古いExcelでも確実に動く 数式が少し長くなる
XLOOKUP 最も簡潔で高機能 古いExcel(2019以前)では使えない
ISNA関数 エラー判定だけを精密に行える IF文との組み合わせが必須で複雑

まとめ:エラーは「回避」ではなく「制御」する

Excel作業においてエラーが出ることは決して悪いことではありません。大切なのは、そのエラーを放置せず、**「見つからないときはこう表示する」**というルールを数式に組み込んでおくことです。今回解説したIFERROR関数やXLOOKUP関数をマスターすれば、あなたの作成する資料は格段にスマートになり、集計ミスもゼロに近づきます。まずは現在のVLOOKUPを、そっとIFERRORで囲むことから始めてみてください。