「値は入っているのに、VLOOKUP だけ #N/A になる」——そのときは、検索値のズレや表の並び、データ形式の違いを疑うのが近道です。
Excel 2024 や Excel for Microsoft 365 でよくあるこの症状、上から順に試してみてください。ほとんどの場合、ここで直ります。
VLOOKUP が #N/A になるとき、主な原因は次の5つです。
検索値が同じに見えても、末尾スペースや改行があると #N/A になります。
検索値のセルと参照先のセルを確認します。
特に以下を見てください。
別セルで、不要文字を除去します。たとえば:
=TRIM(A2)(=前後の空白を削除)=CLEAN(A2)(=印刷できない文字を削除)=SUBSTITUTE(A2," ","")(全角スペースを削除)整えた値を使って再度 VLOOKUP を試します。
VLOOKUP は、指定した範囲の左端の列しか検索できません。
たとえば「社員番号で氏名を引きたい」のに、範囲の先頭が氏名列だと引けません。
数式の範囲を確認します。例:
=VLOOKUP(E2,B2:D100,2,FALSE)この場合、B列が検索キーです。
検索したい値が左端に来るよう、範囲を組み直します。
必要なら、XLOOKUP(=左右どちらでも探せる関数)への置き換えも検討します。
Excel for Microsoft 365 / Excel 2024 なら、=XLOOKUP(E2,C:C,D:D,"") のほうが楽な場面も多いです。
列番号のズレと、近似一致の指定ミスはかなり多いです。
VLOOKUP の書式を確認します。
=VLOOKUP(検索値, 範囲, 列番号, 検索方法)
列番号は、範囲の左端を 1 として数えます。
たとえば B2:D100 なら、B=1、C=2、D=3 です。
第4引数は FALSE または 0 にします。
完全一致で探すなら必須です。
=VLOOKUP(A2,$F$2:$H$100,3,FALSE)=VLOOKUP(A2,$F$2:$H$100,4,FALSE) ← 範囲外=VLOOKUP(A2,$F$2:$H$100,3) ← 近似一致になる「123」と入力されているように見えても、片方が文字列だと一致しません。
セルを選び、左上の緑の三角や表示を確認します。
数値にそろえるなら、別セルで次を使います。
=VALUE(A2)(=文字列の数値を数値に変換)=A2*1(=数値化)文字列にそろえるなら:
=TEXT(A2,"0")変換後の値で VLOOKUP を実行します。
似た値が複数あると、意図した行を拾えず「引けないように見える」ことがあります。
検索キー列に重複がないか確認します。
並び替えやフィルターで、見落としているデータがないか確認します。
範囲の外にあるデータを参照していないかも見直します。
特に、行追加後に範囲を A2:D100 のまま固定していると、新しい行は対象外です。
ここまで試しても解決しない場合は、Excel 側の設定やブック自体の不具合も疑います。
再インストール前には、必ずブックをバックアップしておくと安心です。
VLOOKUP の #N/A は、空白・型の違い・範囲指定ミスの3つでかなりの割合が解決します。落ち着いて順番に見直せば、原因にたどり着きやすいですよ。