VLOOKUPで「#N/A」が出る5つの原因と直し方(XLOOKUPへの置き換えも)

記事
IT・テクノロジー
商品コードから単価を引く、社員番号から名前を引く。表計算でいちばんよく使う関数のひとつがVLOOKUPですが、「#N/A」が出て止まってしまうこともよくあります。原因はほぼ次の5つに分けられます。

■ 1. 検索値の前後に空白が入っている
「A001」と「A001 」(後ろに空白)は別物として扱われます。
→ =VLOOKUP(TRIM(A2), 商品表!$A:$C, 3, FALSE) のようにTRIMで空白を取り除きます。

■ 2. 数値と文字列が混ざっている
片方が数値の「1001」、もう片方が文字の「1001」だと一致しません。セルが左寄せになっていたら文字列を疑います。
→ 表示形式をそろえるか、=VLOOKUP(A2&"", …) / =VLOOKUP(VALUE(A2), …) で型を合わせます。

■ 3. 最後の引数を省略している
4つ目の引数を省くと「近似一致」になり、思わぬ値やエラーが返ります。
→ 完全一致にしたいときは必ず FALSE(または0)を入れます。

■ 4. 参照範囲を固定していない
式を下にコピーすると範囲がずれていきます。
→ 範囲は $A$2:$C$100 や $A:$C のように $ で固定します。

■ 5. 探したい列が範囲の左端にない
VLOOKUPは範囲のいちばん左の列でしか探せません。
→ 列を並べ替えるか、XLOOKUPを使います。

■ XLOOKUPに置き換えると
Excel 2021以降やMicrosoft 365、Googleスプレッドシートでは XLOOKUP が使えます。
=XLOOKUP(A2, 商品表!$A:$A, 商品表!$C:$C, "該当なし")
・左右どちらの列でも探せる
・完全一致が初期設定
・見つからないときの表示("該当なし")を指定できる
という点で、VLOOKUPのつまずきの多くがなくなります。
※古いバージョンのExcelではXLOOKUPは使えないので、ファイルを共有する相手の環境も確認してください。

■ 自分の表で直すのが大変なときは
デスクノート工房では、関数1〜3個や簡単な管理表の作成を3,000円から承っています。エラーの原因と直し方のメモも付けてお渡しします。

※この記事は生成AI(Claude)を使って作成し、式の動作を確認したうえで掲載しています。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す