
ExcelのVLOOKUPが動かない5つの原因。実はN/Aエラーより怖いのは、エラーが出ない方でした
VLOOKUPを入れたのに、思ったとおりに動かなかったことはありませんか。
原因は毎回ちがうように見えて、実は5つしかありません。そして本当に怖いのは、エラーが出ない5番目です。
実際にExcelで5つとも再現しました。画面をそのままお見せします。

1. 型がちがう(#N/A)
検索値が文字列で、マスタ側が数値です。画面ではどちらも「1001」に見えます。見た目が同じでも、Excelにとっては別物です。
セルの左上に緑の三角が出ていたら、そのセルは文字列です。数値なのに左寄せになっている列も同じ疑いがあります。
直し方は、どちらかに揃えることです。マスタが数値なら、検索値の列を選んで「データ」→「区切り位置」→そのまま完了、で数値に戻ります。
2. キーが左端にない(#N/A)
VLOOKUPは、指定した範囲の左端の列しか探せません。
上の例では範囲を マスタ!$B$2:$C$6 にしています。左端が単価の列なので、商品コードで探しても見つかりません。
これは範囲の指定ミスというより、表の並びの問題です。探したい列がマスタの右側にあるなら、VLOOKUPでは届きません。XLOOKUPかINDEX+MATCHに変えるのが早いです。
3. 列番号が範囲外(#REF!)
VLOOKUP(B4, マスタ!$A$2:$B$6, 3, FALSE) と書いています。範囲は2列しかないのに、3列目を取りに行っています。
3番目の引数は「シートの3列目」ではなく、指定した範囲の中で左から何列目かです。ここは間違えやすい場所です。
#REF! が出たときは、まず範囲の列数を数えてください。
4. 範囲がずれる(#N/A)
マスタ!A7:B11 になっています。本来は $A$2:$B$6 でした。
下にコピーしたときに、範囲まで一緒に下へずれた状態です。1行目は動くのに、下の行から急に#N/Aが並ぶときは、たいていこれです。
範囲には必ず $ を付けます。範囲を選んだ状態でF4キーを押すと、まとめて絶対参照になります。
5. エラーが出ない(ここがいちばん怖い)
最後の1つだけ、エラーが出ていません。800という数字が、平然と入っています。
数式はこうなっています。
=VLOOKUP(B6, マスタ!$A$2:$B$6, 2)
4番目の引数がありません。省略すると「近似一致」になります。そして近似一致は、見つからないときに「ありません」と言わず、手前の行の値を返します。
検索値の1007はマスタに存在しません。それなのに、手前にある1005の単価800円が入りました。
#N/Aは、あなたに気づかせてくれます。エラーが出ないこの5番目は、気づかせてくれません。 表は完成して見えて、合計も出ます。
私が20行の明細で試したときは、この省略だけで合計が10,400円ずれました。エラーは1件も出ませんでした。
切り分けは、AIに1分でやらせる
5つのどれかを目で探すより、数式をそのまま貼って聞くほうが早いです。ファイルは渡しません。数式の文字列だけを貼ります(社名や金額を渡さずに済みます)。
次のExcelの数式について、間違っていても気づけない箇所を優先して指摘してください。エラーが表示されずに誤った値が出る条件を、具体的に挙げてください。
数式:(ここに貼る)
「エラーの原因を教えて」ではなく、エラーが出ない条件を先に聞くのがコツです。前者だと#N/Aの説明で終わりますが、後者だと5番目のような静かな間違いが最初に出てきます。
まとめ
動かない原因は5つ。型がちがう/キーが左端にない/列番号が範囲外/範囲がずれる/エラーが出ない
型ちがいは、緑の三角と左寄せで見分ける。「区切り位置」で数値に戻せる
探せるのは範囲の左端の列だけ。右側にあるならXLOOKUPかINDEX+MATCH
列番号の引数が指すのは範囲の中で左から何列目か。シートの列番号ではない
範囲は必ず絶対参照にする。範囲を選んでF4キーを押すと一括で固定できる
最後の引数を省略すると近似一致になり、無い番号でも手前の値を返す。エラーが出ないぶん危ない
切り分けは、数式の文字列だけをAIに貼って「間違っていても気づけない箇所」を聞く
#N/Aが出ている表は、まだ安全です。危ないのは、きれいに数字が入っている表のほうでした。
近似一致で実際に10,400円ずれた実例と、直す前に作る「検算列」、そのまま貼れる指示文6本は、こちらにまとめています。記事で使ったExcelファイルもダウンロードできます。
自分の業務のどの工程からAIに渡すか決めたい方は、LINE公式「AIメモ室」で「AI用途の棚卸しシート」をお渡ししています。