【Excel】VLOOKUP関数で大文字・小文字・全角・半角を区別する方法

ExcelのVLOOKUP関数は、「大文字と小文字」、「全角と半角」を区別しません。「Apple・apple・apple」を区別して抽出したい場合、他の関数を組み合わせる必要があります。この記事では、VLOOKUP関では難しい、厳密な検索をする方法を解説します。

スポンサーリンク

はじめに

【Excel】VLOOKUP関数で大文字・小文字・全角・半角を区別する方法

VLOOKUP関数は、検索キーと一致する行を返すとき、「大文字と小文字」、「全角と半角」を区別しません。

たとえば、A列のテキストの中から「pdf」という文字列を探した場合、「PDF・pdf・pDf」のどれがA列にあっても、最初に見つかったものに対応する値を返します。

例:=VLOOKUP("pdf",A2:B5,2,FALSE)

VLOOKUP関数の引数:(検索キー, 範囲, 指数, [並べ替え済み])

スポンサーリンク

VLOOKUP:厳密な検索

Excel 2019以前の場合

【Excel】VLOOKUP関数で大文字・小文字・全角・半角を区別する方法

大文字・小文字・半角・全角を区別して検索したい場合は、VLOOKUP関数の代わりに、INDEX、MATCHEXACT関数を組み合わます。

たとえば、A列のテキストの中から「pdf」と完全に一致する文字列を探し、その行の容量(B列)を抽出したい場合は、次の数式を使います。

例:{=INDEX(B2:B5, MATCH(TRUE, EXACT(A2:A5, "pdf"), 0))}

EXACT関数の引数:(文字列1, 文字列2)

INDEX関数の引数:(参照, [行番号], [列番号])

MATCH関数の引数:(検査値, 検査範囲, [検索の種類])


この数式では、EXACT関数で2つの文字列が同一であるかを検証し、その結果を{FALSE;TRUE; FALSE;FALSE}のような配列で、MATCH関数の検索範囲として渡します。

MATCH関数は検査範囲からTRUEの位置(2)をINDEX関数に渡し、INDEX関数が範囲から2番目の値を抽出します。

また、EXACT関数のように配列を返す関数を別の関数の引数として使う場合、[Ctrl] + [Shift] + [Enter]で確定させ、数式の先頭と最後に{}を追加します。

Excel 2021以降の場合

【Excel】VLOOKUP関数で大文字・小文字・全角・半角を区別する方法

大文字・小文字・半角・全角を区別して検索したい場合は、VLOOKUP関数の代わりに、XLOOKUP関数EXACT関数を組み合わます。

たとえば、A列のテキストの中から「pdf」と完全に一致する文字列を探し、その行の容量(B列)を抽出したい場合は、次の数式を使います。

例:=XLOOKUP(TRUE,EXACT(A2:A5,"pdf"),B2:B5)

EXACT関数の引数:(文字列1, 文字列2)

XLOOKUP関数の引数:(検索キー, 検索範囲, 結果の範囲, [見つからない場合の値], [一致モード], [検索モード])


この数式では、EXACT関数で2つの文字列が同一であるかを検証し、その結果を{FALSE;TRUE; FALSE;FALSE}のような配列で、XLOOKUP関数の検索範囲として渡します。

XLOOKUP関数は検索範囲からTRUEを探し、対応する値を結果の範囲から返します。

タイトルとURLをコピーしました