• 公開日:

ExcelのVLOOKUP関数とワイルドカードで前方一致検索する

この記事では、ExcelのVLOOKUP関数とワイルドカードで前方一致検索する方法をご紹介します。

VLOOKUP関数でデータ検索をする際、「〇〇から始まる文字列」を検索できる前方一致検索という方法があります。検索値を完全に一致させる必要がないので住所検索などをする際に便利です。

以下では、ワイルドカードを使った前方一致検索の方法を2種類ご紹介します。

前方一致検索とは?

前方一致検索とは、「あいう〇〇」「かき〇〇〇」など、後ろの文字列があいまいな場合に一致するデータを探す検索方法です。

前方一致検索の例

ワイルドカードを使った「前方一致検索」を上記の画像を例にしてご説明します。

VLOOKUP関数では、検索値と検索範囲の値が完全に一致している必要がありますが、検索値(例:A102)と検索範囲(例:A102-2-1)の値は完全一致していません。

ただし、検索値にワイルドカードの特殊文字を組み合わせることでA102から始まる値を検索し、「商品名」ももを抽出することができます。

ExcelのVLOOKUP関数とワイルドカードで前方一致検索する

VLOOKUP関数で使うワイルドカードは文字数を指定しない「*」と文字数を指定する「?」の2種類あります。

以下では、ExcelのVLOOKUP関数とワイルドカードで前方一致検索する方法をそれぞれご紹介します。

*を使って前方一致検索をする方法

*(アスタリスク)は前方一致させたい値の後ろに付けることで、どんな文字列でも何文字でも置き換えて検索することができるワイルドカードです。

指定した値の後ろに続く文字列が1文字でも2文字でも、*を1つ付けることで不特定の文字列を検索することができます。

*を使って前方一致を指定する場合、検索値の入力方法は2種類あります。

表記の例検索値の意味
A1&"*"A1セルの値から始まる不特定の文字列
"ABC*"ABCから始まる不特定の文字列

検索値をセル参照している場合は、セル番地の後ろに「&"*"」を付けてセルの値から始まる文字列を検索します。「&」を付け忘れないようにご注意ください。

また、文字列を直接数式に入力する場合は、指定した文字列の後ろに「*」をつけてダブルクォーテーションで囲みます。

以下では、実際に*を使って前方一致検索をする手順をご紹介します。

検索値を入力する

E2セルに検索値(例:大阪)を入力します。

関数を入力する

F2セルに=VLOOKUP(E2&"*",A2:C10,2,FALSE)」を入力して、Enterを押します。

セル参照をする場合、引数に指定する検索値の表記は「E2&"*"」です。

または、=VLOOKUP("大阪*",A2:C10,2,FALSE)」を入力して、Enterを押します。

文字列を数式に直接入力する場合、引数に指定する検索値の表記は「"大阪*"」です。

結果が表示された

F2セルに結果が表示されました。

ワイルドカード(*)を使うことで、文字列が長い場合や後ろの文字列があいまいな場合にVLOOKUP関数でデータ検索をすることができます。

?を使って前方一致検索をする方法

?(クエスチョン)は前方一致させたい値の後ろに付けることで、指定した値から始まる特定の文字数の文字列を検索することができるワイルドカードです。

?は不特定の1文字に置き換えることができます。スペースや記号も1字として数えます。

?を使って前方一致を指定する場合、検索値の入力方法は2種類あります。

表記の例検索値の意味
A1&"???"A1セルの値から始まる不特定の3文字
"ABC???"ABCから始まる不特定の3文字

検索値をセル参照している場合は、セル番地の後ろに「&"???"」を付けてセルの値から始まる文字列を検索します。

また、文字列を直接数式に入力する場合は指定した文字列の後ろに?をつけてダブルクォーテーションで囲みます。

以下では、実際に?を使って前方一致検索をする手順をご紹介します。

検索値を入力する

E2セルに検索値(例:大阪府枚方市出口)を入力します。

関数を入力する

F2セルに=VLOOKUP(E2&"?????",A2:C10,2,FALSE)」を入力して、Enterを押します。

セル参照をする場合、引数に指定する検索値の表記は「E2&"?????"」です。

または、=VLOOKUP("大阪府枚方市出口?????",A2:C10,2,FALSE)」を入力して、Enterを押します。

文字列を数式に直接入力する場合、引数に指定する検索値の表記は「"大阪府枚方市出口?????"」です。

結果が表示された

F2セルに結果が表示されました。

ワイルドカード(?)は、スペースや記号も1文字として数えるので、データ内にスペースなどがある場合、数え間違えると文字数が合わずエラーになってしまうのでご注意ください。