VLOOKUPで#N/Aになる原因と直し方

VLOOKUPの#N/Aは「探した値が見つからない」というエラーです。ただ、値は表にあるのに#N/Aになることも多くあります。Microsoftのサポート記事(2026年10月15日確認)をもとに、原因を確かめる順番と直し方をまとめました。

テマゼロAI > 解説ガイド

公開:2026年10月15日 最終更新:2026年10月15日 執筆:板野 克基(株式会社ブライトアセット) 編集方針

この記事の内容

要点:#N/Aになったら確かめる7つのこと

  1. 探している値が、相手の表に本当にあるか
  2. 検索値が、範囲のいちばん左の列にあるか
  3. 4つ目の引数(検索方法)をFALSEにしているか
  4. 数値と文字列が混ざっていないか(00123と123など)
  5. 前後に余分な空白がないか
  6. 全角と半角が混ざっていないか
  7. 数式をコピーしたときに範囲がずれていないか(絶対参照)

VLOOKUPの書式は =VLOOKUP(検索値, 範囲, 列番号, 検索方法) です。完全一致で探すときは、検索方法をFALSEにします。

VLOOKUPを組まずに2つの表を突き合わせるExcel・CSVの突き合わせ(VLOOKUP不要)(無料・登録不要)→

#N/Aの意味

Microsoftのサポートによると、検索方法がFALSEのとき、#N/Aは正確に一致する値が見つからないことを示します。つまり、エクセルの立場では「その値は範囲の最初の列にない」という結果です。見た目は同じでも、データの型や空白などが違えば「別の値」として扱われるため、1つずつ確かめる必要があります。

例:商品コードで在庫表から在庫数を引く式 =VLOOKUP(A2, $E$2:$G$100, 3, FALSE)。A2の商品コードを、E列(範囲の最初の列)から探して、範囲の3列目(G列)の値を返します。

原因1:探している値が相手の表にない

いちばん多い原因です。本当に相手の表にない場合、#N/Aは正しい結果です。新しい商品がまだ在庫表に登録されていない、注文番号の入力漏れがある、といったケースです。まず相手の表で検索(Ctrl+F)して、その値があるかを確かめてください。Microsoftは、ソースデータに参照値を入力するか、IFERRORなどで表示を変えることを案内しています。

原因2:検索値が範囲の最初の列にない

VLOOKUPは、検索値を範囲のいちばん左の列からしか探しません。商品コードがC列にあるのに、範囲をB列から指定すると、B列の中を探すため見つかりません。範囲を検索値の列から始めるように指定し直してください。左側の列の値を返したいときは、任意の方向で探せて既定で完全一致のXLOOKUP関数が使えます(使えるExcelのバージョンの場合)。

原因3:検索方法がTRUE、または省略している

4つ目の引数を省略すると、TRUE(近似一致)とみなされます。近似一致は、範囲の最初の列が並べ替えられている前提の探し方なので、並んでいない表では#N/Aや間違った値が返ることがあります。商品コードや注文番号のように「同じものを探す」ときは、必ずFALSEを指定します。

原因4:数値と文字列が混ざっている

同じ「123」でも、片方の表では数値、もう片方では文字列として入っていると一致しません。Microsoftのサポートも、検索値とソースデータのデータ型が異なると#N/Aになるとして、データ型をそろえるよう案内しています(セルの書式はCtrl+1で確認できます)。

特に多いのが、先頭の0が消えたコードです。CSVをExcelで開いたときに「00123」が数値の「123」に変わり、もう一方の表の「00123」と一致しなくなります。商品コードは文字列にそろえるのが安全です。

全角・半角や空白のゆれをまとめて直す住所・電話の表記ゆれ統一(無料・登録不要)→

原因5:前後に余分な空白がある

「A001」と「A001 」(末尾に空白)は別の値です。システムから出力したデータや、手で入力したデータには、見えない空白が入っていることがあります。MicrosoftはTRIM関数やCLEAN関数で余分な空白や印刷されない文字を取り除くよう案内しています。例:=VLOOKUP(TRIM(A2), $E$2:$G$100, 3, FALSE)(相手の表の側に空白がある場合は、そちらも整えます)。

原因6:全角と半角が混ざっている

「ABC-001」と「ABC-001」、半角カナと全角カナなども別の値として扱われます。ExcelのASC関数(=ASC(文字列))を使うと、全角(2バイト)の文字を半角(1バイト)の文字に変換できます。ハイフンの種類(-、-、ー)が混ざっていることもあるので、片方だけでなく両方の表を同じルールでそろえるのがポイントです。

原因7:数式をコピーしたら範囲がずれた

範囲を E2:G100 のように書いたまま下の行へコピーすると、E3:G101、E4:G102…と範囲もずれ、上のほうの行が探す範囲から外れます。Microsoftは、絶対参照($E$2:$G$100)にすると、数式を下にコピーしても常に同じ範囲を参照できると説明しています。

どこが違うかを見つけるコツ

見た目が同じなのに一致しないときは、2つのセルを直接比べると原因を絞れます。空いているセルに =A2=E5 のように入力し、FALSEになれば、Excelは2つを別の値として扱っています。=LEN(A2) で文字数を数えて相手のセルと比べると、見えない空白が入っているかがわかります。数値か文字列かは、=ISNUMBER(A2) がTRUEかFALSEかで確かめられます。1行ずつ確かめて原因がわかったら、その直し方を列全体に当てはめてください。

#N/Aを表示しない方法(IFNAとIFERROR)

原因を直したうえで、本当に見つからない行の表示を変えたいときは、IFNA関数を使います。=IFNA(VLOOKUP(A2, $E$2:$G$100, 3, FALSE), "見つかりません") のように書くと、#N/Aの代わりに指定した文字を表示します。IFERROR関数は#N/A以外のエラーもまとめて置き換えるため、範囲の指定ミスなど別の問題まで隠してしまうことがあります。また、どちらの関数も#N/Aの原因を直すものではありません。表示を変える前に、上の7項目を確かめてください。

2つの表を突き合わせるなら

注文一覧と在庫表、2つの顧客名簿など、表どうしを照合する作業は、VLOOKUPを組まなくてもできます。Excel・CSVの突き合わせは、2つの表を商品コードや注文番号でつなぎ、片方にしかない行(VLOOKUPなら#N/Aになる行)も一覧で出します。照合の前に全角・半角や空白をそろえるなら住所・電話の表記ゆれ統一、重複している行を除くなら重複削除が使えます。いずれもデータはブラウザの中だけで処理します。

出典・確認日

計算はExcel・CSVの突き合わせ(VLOOKUP不要)で

2つのCSV・Excelの表を商品コードや注文番号でつなぎます。VLOOKUPを組まずに結合し、片方にしかない行(#N/Aになる行)も一覧で出せます。データはブラウザ内だけで処理。

Excel・CSVの突き合わせ(VLOOKUP不要)を使う(無料・登録不要)

公開中のツール 29本・解説ガイド 10本。入力した数字はブラウザの中だけで計算し、サーバーには送りません。

この記事で使えるツール

関連する解説