VLOOKUPで「データがあるのにヒットしない」問題を解決する方法
ExcelのVLOOKUP関数を使っていると、「データはあるはずなのにヒットしない」といった問題に直面することがあります。この記事では、そんな問題を解決するための方法を解説します。
VLOOKUP関数の基本
まず、VLOOKUP関数の基本的な使い方をおさらいしましょう。
=VLOOKUP(検索値, 範囲, 列番号, [検索方法])
大まかな使用方法は以下のページを参照してください。
検索がヒットしない主な原因と解決策
1. データの形式の違い
検索値と範囲の一番左の列の形式が異なる場合、VLOOKUPは正しく機能しません。たとえば、数値がテキスト形式になっている場合、あるいはその逆の場合です。
例1: 検索値が数値形式で、範囲の左の列がテキスト形式の場合
A1: 123 B5: "123" (テキスト形式) =VLOOKUP(A1, B1:C10, 2, FALSE)
解決策: 検索値をテキスト形式に変換します。
=VLOOKUP(TEXT(A1, "0"), B1:C10, 2, FALSE)
例2: 検索値がテキスト形式で、範囲の左の列が数値形式の場合
A1: "123" B: 123 (数値形式) =VLOOKUP(A1, B1:C10, 2, FALSE)
解決策: 検索値を数値形式に変換します。
=VLOOKUP(VALUE(A1), B1:C10, 2, FALSE)
2. スペースの問題
データの前後に余分なスペースが含まれていると、VLOOKUPは正しく機能しません。
解決策: TRIM関数を使って余分なスペースを削除します。
=VLOOKUP(TRIM(A1), B1:C10, 2, FALSE)
3. 完全一致と近似一致
完全一致が必要なのに検索方法に「FALSE」を指定していない場合や、近似一致を使用する際に範囲の左の列が昇順になっていない場合、VLOOKUPは正しく機能しません。
例1: 完全一致が必要なのに「FALSE」を指定していない場合
A1: 123 B4: 123 =VLOOKUP(A1, B1:C10, 2, TRUE) =VLOOKUP(A1, B1:C10, 2)
解決策: 第4引数をFALSEに設定します。
=VLOOKUP(A1, B1:C10, 2, FALSE)
例2: 近似一致を使用する際に範囲の左の列が昇順になっていない場合
A1: 123 B3: 124 (昇順ではない) =VLOOKUP(A1, B1:C10, 2, TRUE)
解決策: 範囲の左の列を昇順に並べ替えます。
A1: 123 B8: 124 (昇順) =VLOOKUP(A1, B1:C10, 2, TRUE)
4. 範囲の一番左の列が検索値と同種になっていないケース
範囲の一番左の列が検索値と同種のデータ型になっていない場合、VLOOKUPは正しく機能しません。
A1: 123 (番号) B列 甲乙丙…… (範囲:文字の値) C列 123,…… (範囲:番号)
解決策: 範囲の一番左の列を検索値と同じデータ種に統一します。あるいは範囲の範囲の一番左の列へ検索値と同じデータをセットします。
まとめ
VLOOKUPで「あるのにヒットしない」問題は、データ形式の違いやスペースの問題、完全一致と近似一致の設定ミス、範囲の一番左の列が検索値と同種になっていないケースなどが原因です。これらの問題に対する具体的な解決策を実践することで、VLOOKUPの正確な結果を得ることができます。ぜひ試してみてください。
コメント