「Excel」VLOOKUP関数でエラーが出る原因を解決したい【T】

「Excel」でVLOOKUP関数を入力したのに、期待した結果ではなくエラー値が表示されて計算が止まってしまい困った経験はありませんか?


数式自体は間違っていないように見えても、参照先のデータ形式や範囲の指定方法にわずかなズレがあるだけで、関数は正しく機能しなくなるかもしれません。

エラーの原因を一つずつ切り分けて確認することで、複雑な表計算におけるトラブルを迅速に解決し、正確なデータ照合を実現するためのヒントになるはずです。

検索値と参照先のデータの不一致を確認する方法

VLOOKUP関数で最も多いエラーの原因は、探している「検索値」と、リスト側の「左端の列」の内容が完全一致していないことです。

見た目には同じ文字や数値に見えても、データの裏側に余計な空白文字が含まれていたり、数値と文字列というデータ型の違いがあったりすると、関数は別のものとして認識してしまいます。

  • 検索値が入っているセルをダブルクリックして、末尾に目に見えないスペースが入っていないか確認します。

  • 参照範囲の左端列に対しても同様に、不要な空白や改行が含まれていないかチェックしてください。

  • 数値が「文字列」として保存されていないか、セルの書式設定を見直して型を統一させます。

アドバイスとして、大量のデータを扱う場合はTRIM関数などを使って一括で空白を取り除いておくと、こうした目に見えない不一致によるエラーを未然に防ぐことができます。

また、数値が文字列扱いになっている場合は、データタブの「区切り位置」機能を利用して一括で数値型に変換する手法も非常に有効です。


範囲指定と列番号の指定ミスを修正する手順

関数の引数で指定している「範囲」や「列番号」が、実際の表の構造とズレている場合もエラーが発生します。

特に、数式を下のセルにコピーした際に範囲が一緒に動いてしまう「相対参照」のミスや、範囲外の列番号を指定しているケースなどは、基本的ながら見落としやすいポイントです。

  1. VLOOKUP関数の第2引数である「範囲」が、コピー後もずれないように「$」を付けた絶対参照になっているか確認します。

  2. 第3引数の「列番号」が、指定した範囲内の列数を超えていないか、左から数え直して数値を修正してください。

  3. 範囲の左端の列に、必ず検索したいキーワードが含まれていることを改めてチェックします。

注意点として、表に列を挿入したり削除したりすると、数式内で直接指定した「列番号」が自動で追従しないため、結果がズレたりエラーになったりすることがあります。

構造が頻繁に変わる表では、COLUMN関数を組み合わせて列番号を動的に取得するように工夫すると、メンテナンス性が向上しエラーを減らすことにつながります。


検索方法の指定によるエラーを回避する効果

第4引数の「検索方法」に「FALSE(完全一致)」を指定しているかどうかも、意図しない結果やエラーを避けるための重要な鍵となります。

ここを省略したり「TRUE(近似一致)」にしたりしていると、リストが昇順に並んでいない場合に誤ったデータを引っ張ってきたり、エラーを誘発したりする原因になります。

  • 関数の末尾にある第4引数に「0」または「FALSE」を確実に入力して、完全一致での検索を強制します。

  • エラーが表示される場合に備えて、IFERROR関数で囲み、エラー時に空白や「該当なし」と表示させる設定を行います。

  • 近似一致(TRUE)を使う場合は、必ず参照範囲の左端列を昇順で並べ替えておいてください。

アドバイスとして、VLOOKUPは「左から右」へしか検索できないという制約があるため、検索したい列がデータの右側にある場合はエラー以前に参照自体が不可能です。

最新の「Excel」を利用できる環境であれば、こうした制約がないXLOOKUP関数に切り替えることで、よりシンプルかつエラーの少ない数式を作成できるようになるはずです。


人気のある投稿記事

「Excel」カーソルの白十字を元に戻したい

「Excel」を使ったことはあっても、他人が使ってる「Excel」って、変な設定になってることがありませんか?例えば、カーソルが白い十字のままで、通常ならばセルの右下端をドラッグすることができ、連番を振ったりできるのに、それができないこととか。