
「VLOOKUPを正しく入力したはずなのに、なぜかうまく動かない…。」
そんな経験、ありませんか?
#N/A
や0
が表示される- 間違った値が返ってくる
- 一部のデータだけうまく検索できない
Excelを使いこなしたいのに、思うようにいかずイライラ…。
でも安心してください。VLOOKUPのトラブルには 共通する原因 があり、それを知れば すぐに解決 できます!
本記事では、VLOOKUPが正しく設定されているのに動かない理由と、その対処法を徹底解説 します。
1️⃣ 検索値のデータ形式が違う(数値 vs 文字列)
✅ 症状
#N/A
が表示される- 該当するデータがあるのに、検索できない
🔍 原因
VLOOKUPでは、検索値と検索対象のデータ型が一致していないと検索できません。
たとえば、「123」という 数値 を探そうとしても、検索対象が「’123」(文字列)になっていると一致しません。
💡 解決策
✅ データの形式を揃える
=ISTEXT(A1)
→TRUE
なら文字列、FALSE
なら数値=ISNUMBER(A1)
→TRUE
なら数値、FALSE
なら文字列
✅ 文字列を数値に変換
✅ 数値を文字列に変換
✅ 「データ」タブ → 「区切り位置」機能で統一
参考:Excel VLOOKUPで(式は間違ってないのに)#N/Aエラーが出る原因と解決方法:文字形式の違いに注意!
2️⃣ 検索範囲の1列目に検索キーがない
✅ 症状
#N/A
が表示される- 間違った値が返ってくる
🔍 原因
VLOOKUPは、検索範囲の「1列目」からしか検索できません!
たとえば、以下のようなデータがあるとします。
A列(社員ID) | B列(名前) | C列(部署) |
---|---|---|
1001 | 佐藤 | 営業 |
1002 | 田中 | 総務 |
1003 | 鈴木 | 開発 |
ここで、「名前(B列)」を基準に部署を検索する ことは、VLOOKUPではできません。
(検索範囲の1列目が社員IDのA列だから)
💡 解決策
✅ 検索範囲の1列目を変更(B列を検索範囲の1列目にする)
✅ INDEX+MATCHを使う(VLOOKUPの制約を回避)
💡 MATCHが「田中」の行番号(2行目)を取得し、INDEXで対応する「総務」を返す!
→ このINDEX+MATCHの最強の組み合わせについては、記事末尾に詳しく解説を載せています。
3️⃣ 近似一致(TRUE)が設定されている
✅ 症状
- 間違った値が返ってくる
🔍 原因
VLOOKUPの4番目の引数が TRUE(近似一致) になっていると、
「ピッタリの値がなくても、近い値を探してしまう」 という仕様があります。
たとえば、
この場合、IDが1002ぴったりでなくても、近いIDを返してしまう のです。
💡 解決策
✅ 必ず「FALSE(完全一致)」を指定する!
これで、完全に一致するデータのみ検索できる ようになります。
4️⃣ 検索範囲の絶対参照がズレている
✅ 症状
- 数式をコピーすると、うまく検索できなくなる
🔍 原因
検索範囲が相対参照のままだと、コピーしたときに範囲がズレてしまいます。
💡 解決策
✅ 検索範囲を 絶対参照($マークをつける) にする!(セルを選択してF4キー)
こうすることで、どこにコピーしても検索範囲が固定されます。
🟢 絶対参照ってなに?

「先輩!Excelで計算式をコピーしたら、結果がズレちゃいました💦 何が原因なんでしょう?」

「それは 「絶対参照」 を使ってないからだね!エクセルのセル参照には 「相対参照」「絶対参照」「複合参照」 の3種類があるんだよ。」
📝 Excelの3つのセル参照
参照の種類 | 書き方 | 特徴 |
---|---|---|
相対参照 | A1 |
数式をコピーするとセルの位置がズレる |
絶対参照 | $A$1 |
数式をコピーしてもセルが固定される |
複合参照 | $A1 または A$1 |
行または列のどちらかを固定 |

へぇ!$
を付けると セルを固定できる んですね!」
🟢 絶対参照の使い方(基本編)

じゃあ、絶対参照を使うと どう変わる んですか?

例えば、消費税の計算 をするときに 税率を固定 する場合を考えてみよう!
📌 相対参照(ズレる)
A列(商品) | B列(価格) | C列(税率) | D列(税込価格) |
---|---|---|---|
税率 | 8% | ||
りんご | 100 | ? | |
みかん | 150 | ? | |
ぶどう | 200 | ? |
👉 この数式を下にコピーすると、「C2」「C3」とズレてしまい、税率が正しく適用されない!
📌 絶対参照(固定)
👉 「$C$1」を固定することで、どこにコピーしても税率(8%)を適用できる!

「なるほど! C1
を 常に参照したい場合は $C$1
とする んですね!」
🟢 絶対参照のショートカット技!

「でも 手動で「$」を入れるのは面倒 じゃないですか?💦」

「そこで F4キー を使うと、一瞬で設定できるよ!」
🔹 F4キーで絶対参照を設定する
- 数式のセルをクリック し、参照するセル(例:C1)にカーソルを置く
- F4キーを押すと、「$」が自動でつく!
F4キーを押すたびに切り替わる!
1️⃣ C1
(相対参照) → $C$1
(絶対参照)
2️⃣ $C$1
→ C$1
(行固定)
3️⃣ C$1
→ $C1
(列固定)
4️⃣ $C1
→ C1
(相対参照に戻る)

「F4キーを押すだけで絶対参照を設定できるんですね!これは便利!」
🟢 絶対参照の活用例(VLOOKUP編)

「絶対参照ってVLOOKUPでも使いますか?」

「めちゃくちゃ使うよ!VLOOKUPでは、検索範囲を固定しないと数式をコピーしたときにズレてしまう んだ。」
📌 絶対参照なし(相対参照)
👉 コピーすると「B3:D11」「B4:D12」…と検索範囲がズレる!
📌 絶対参照あり(検索範囲を固定)
👉 検索範囲 $B$2:$D$10
を固定することで、ズレずに正しく検索できる!

「これは VLOOKUPを安定して使うのに必須 ですね!」
5️⃣ 検索値が重複している
✅ 症状
- 期待とは違う値が返ってくる
🔍 原因
VLOOKUPは 最初に見つかったデータだけを返します!
検索対象のデータが重複していると、正しいデータが返らないことがあります。
💡 解決策
✅ データの重複を確認する(条件付き書式で重複チェック)
✅ FILTER関数を使う(Excel365以降)
これなら、該当する全てのデータを取得できます。
6️⃣ 別のシートやブックを参照している
✅ 症状
#REF!
や#N/A
が出る
🔍 原因
VLOOKUPで別のシートやブックを参照していると、ファイルが開いていないと動作しない場合があります。
💡 解決策
✅ 外部ファイルを開く
✅ INDIRECT関数で参照を安定させる
7️⃣ そもそもVLOOKUPでは限界がある
VLOOKUPには、
☑ 検索範囲の1列目しか使えない
☑ 列番号を手動で指定しないといけない
などの制約があります。
✅ INDEX+MATCHなら制約なし!
✅ XLOOKUP(Excel 2019以降)ならもっと簡単!
🔹 まとめ
✅ 「#N/A」が出る → データ型をチェック!
✅ 間違った値が返る → 完全一致(FALSE)を指定!
✅ 検索範囲の絶対参照を確認!
✅ INDEX+MATCHやXLOOKUPも検討!
これで、VLOOKUPでハマることはもうありません!
エクセルの時短テクを活用して、残業を減らしましょう! 🚀
【番外編】※※もっと詳しく※※
VLOOKUPの限界を突破!INDEX+MATCHを初心者向けにわかりやすく解説
「VLOOKUPを使っているけど、うまくいかない…。」
そんな悩みを持っていませんか?
実は、VLOOKUPにはいくつかの制約があり、それを克服できるのが「INDEX+MATCH」 という組み合わせ技です!
💡 INDEX+MATCHなら…
✅ VLOOKUPの「検索範囲の1列目しか検索できない」制約を突破できる!
✅ 列の挿入・削除があっても壊れない!
✅ VLOOKUPよりも柔軟に検索できる!
「関数が難しそう…」と思うかもしれませんが、
基本の考え方を理解すれば、VLOOKUPよりも自由にデータを検索できるようになります!
1️⃣ そもそもINDEX+MATCHとは?
INDEXとMATCHは、それぞれ単体でも使える関数ですが、組み合わせると VLOOKUPの上位互換 になります。
🔹 INDEX関数(データを取り出す)
INDEX関数は、「表の○行○列のデータを取得する」という関数です。
📌 基本の形
A列(ID) | B列(名前) | C列(部署) |
---|---|---|
1001 | 佐藤 | 営業 |
1002 | 田中 | 総務 |
1003 | 鈴木 | 開発 |
例えば、C列(部署)の 2行目 のデータを取り出したいなら…
結果 👉 「総務」
🔹 MATCH関数(検索値の位置を調べる)
MATCH関数は、「指定した値が範囲の何番目にあるか?」を調べる関数です。
📌 基本の形
A列(ID) | B列(名前) | C列(部署) |
---|---|---|
1001 | 佐藤 | 営業 |
1002 | 田中 | 総務 |
1003 | 鈴木 | 開発 |
例えば、「田中」がB列のどこにあるか調べたい場合、
結果 👉 2(B列の2行目にあるから)
2️⃣ INDEX+MATCHを組み合わせてVLOOKUPの代わりにする
VLOOKUPの代わりにINDEX+MATCHを使う場合、次のように組み合わせます。
📌 基本の形
🎯 例:「名前」から「部署」を検索する
A列(ID) | B列(名前) | C列(部署) |
---|---|---|
1001 | 佐藤 | 営業 |
1002 | 田中 | 総務 |
1003 | 鈴木 | 開発 |
「田中」の「部署(C列)」を検索したい場合
MATCH(“田中”, B2:B4, 0) の部分が「田中は何行目?」を探し、INDEXがその行のC列を返す!
結果 👉 「総務」 🎉
3️⃣ INDEX+MATCHがVLOOKUPより優れている理由
✅ ① 検索範囲の1列目の制約なし!
VLOOKUPは「検索範囲の1列目」からしか検索できませんが、INDEX+MATCHなら どの列からでも検索OK!
✅ ② 列の挿入・削除に強い!
VLOOKUPは「列番号」を指定しますが、データが変わるとズレます。
INDEX+MATCHは「列の番号」ではなく「検索範囲」を指定するので、データが変わっても壊れません。
✅ ③ 左側のデータを検索できる!
VLOOKUPは「右方向」しか検索できませんが、INDEX+MATCHなら「左方向」にも検索できます!
4️⃣ INDEX+MATCHの応用テクニック
🔹 横方向の検索(MATCHの列番号取得)
VLOOKUPは 「横方向の検索」 ができませんが、INDEX+MATCHなら可能です!
MATCHで 行番号と列番号を両方取得 し、INDEXでデータを取り出します。
これで、行・列どちらの変更にも強い検索ができます!
5️⃣ XLOOKUP(Excel 2019以降)ならもっと簡単!
Excelの新しい関数 XLOOKUP は、INDEX+MATCHと同じようなことを よりシンプルに できます。
✅ VLOOKUPの「検索範囲の1列目」制約なし!
✅ 左方向の検索も可能!
✅ 近似一致(TRUE)のミスが起こらない!
もし Excel 2019 / 365 を使っているなら、XLOOKUPが最も便利です!
🔹 まとめ
💡 VLOOKUPの限界を克服するなら「INDEX+MATCH」!
💡 Excel 2019以降なら「XLOOKUP」が最強!
関数 | 左方向検索 | 列の挿入に強い | 柔軟性 | シンプルさ |
---|---|---|---|---|
VLOOKUP | ❌ 不可 | ❌ 弱い | 😐 普通 | 😊 簡単 |
INDEX+MATCH | ✅ 可能 | ✅ 強い | ✅ 高い | 😐 やや難しい |
XLOOKUP | ✅ 可能 | ✅ 強い | ✅ 高い | 😊 簡単 |
VLOOKUPを使っていると、「あれ、動かない…」と悩むことがよくあります。
INDEX+MATCHを使いこなせば、より自由にデータを検索でき、Excel作業がスムーズに! 🚀
「VLOOKUPで困ったら、INDEX+MATCHを試してみましょう!」
コメント