VLOOKUPで「データがあるのにヒットしない」ケースの例と対処案

VLOOKUPで「データがあるのにヒットしない」問題を解決する方法

ExcelのVLOOKUP関数を使っていると、「データはあるはずなのにヒットしない」といった問題に直面することがあります。この記事では、そんな問題を解決するための方法を解説します。

VLOOKUP関数の基本

まず、VLOOKUP関数の基本的な使い方をおさらいしましょう。

=VLOOKUP(検索値, 範囲, 列番号, [検索方法])

大まかな使用方法は以下のページを参照してください。

VLOOKUP関数の詳細解説(Excel)
ExcelのVLOOKUP関数の使い方をわかりやすく解説 Excelには、様々なデータを縦横に検索し、特定の値を取得するのに便利な「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の正確な結果を得ることができます。ぜひ試してみてください。

コメント