VLOOKUP関数を部分・一部一致で検索|ワイルドカードとは
ここでは、エクセルのVLOOKUP関数で部分一致(一部一致)の検索ができる数式を解説します。
部分一致の検索とはなにか、ワイルドカードとは、部分一致検索の仕方の説明です。
1.部分一致の検索(あいまい検索)とは
始めに、「部分一致の検索(あいまい検索)とはどのようなことか?」を見てみましょう。
部分一致検索とは 「特定の文字列を含んだセルを検索すること」を言います。
一つ例を見てみます。
上の例は、住所の一覧表です。
例えば、住所に「盛岡市」が入った人の氏名を抽出したい時、使うのが「部分一致検索」です。
本来、VLOOKUP関数の引数「検索方法」で指定できるのは「完全一致」か「近似一致」です。
完全一致は文字通り条件と完全に同じ、近似一致は検索対象が数値の場合に最も近い値を検索します。
対して「部分一致」は「部分」、つまり一部のみ一緒であればいいという検索方法で、言い換えれば 「特定の文字列が含まれる」となります。
ちなみにこの検索方法は、文字列の前部分の一致を見る「前方一致」や後ろ部分の一致を見る「後方一致」を含めて 「あいまい検索」と呼ばれています。
2.ワイルドカードとは
次に、ワイルドカードとはなにか、そしてその種類を見てみます。
ワイルドカードとは 「『*』と『?』という2つの記号のこと」です。
エクセルでは、検索の引数にワイルドカードを付けることで、あいまい検索ができます。
なお、「*」と「?」は、それぞれ次のような場面で使用します。
種類 | 使用する場面 |
* | 文字数を指定しない場合に使用 |
? | 文字数を指定する場合に使用 |
「文字数を指定する」とは、「あいまい検索の条件値の前または後ろに文字数を指定するか?」ということです。
例えば、「あ」という言葉を含んでいれば全体的な文字数は関係ない、となれば「*」を使いますし、「あ」の前に1文字あるものだけ、または後ろに2文字あるものだけ、となれば「?」を使います。
あいまい検索時には、このどちらかのワイルドカードを使用します。
3.あいまい検索の仕方
あいまい検索は、検索値を 「数式内で直接指定する方法」と「セル参照する方法」の2通りがあります。
ワイルドカードの付け方が違うので、それぞれみてみましょう。
3-1.検索値を数式内で直接指定する
条件値を数式内で直接指定する場合には、それぞれ次のように指定します。
検索したい条件 |
あいまい検索の 指定方法 |
引数「検索値」の例 |
「盛岡市」を含む文字列 | 「盛岡市」の前後に「*」 | "*盛岡市*" |
「盛岡市」から始まる文字列 | 「盛岡市」の後に「*」 |
"盛岡市*" |
「盛岡市」で終わる文字列 | 「盛岡市」の前に「*」 |
"*盛岡市" |
「盛岡市」の前後に何か1文字ずつある文字列 |
「盛岡市」の前後に「?」 |
"?盛岡市?" |
「盛岡市」の後に何か1文字ある文字列 | 「盛岡市」の後に「?」 |
"盛岡市?" |
「盛岡市」の前に何か1文字ある文字列 | 「盛岡市」の前に「?」 |
"?盛岡市" |
例えば、先ほどの表から「盛岡市を含む文字列」を検索したい場合には、次のような数式になります。
【セルF3の数式】
=VLOOKUP("*盛岡市*",B2:C4,2,FALSE)
ポイントは、次の通りです。
- ①『含む』と『~から始まる』と『~で終わる』のどれで検索するか?
- ② 文字数を指定するか?
- ③ 検索値を「"」で囲む
まず①は、どれにするかでワイルドカードの付け方(前後or前のみor後ろのみ)が違ってきます。
そして②は、使うワイルドカード(『*』or『?』)が違ってきます。
③は、文字列の検索値を数式内で直接指定する場合に必要です。
この3点に気を付ければ、数式内で直接検索値を指定して、あいまい検索をすることができます。
3-2.検索値をセル参照する
次に、検索値をセルに入力して参照する場合です。
例えばセルE3に検索値を入れた場合、数式は次のようになります。
指定したい条件 | あいまい検索の指定方法 | 引数「検索値」の例 |
セルE3の値を含む文字列 |
「E3」の前に"*&"、後に"&*" |
"*"&E3&"*" |
セルE3の値から始まる文字列 | 「E3」後に"&*" |
E3&"*" |
セルE3の値で終わる文字列 | 「E3」の前に"*&" | "*"&E3 |
セルE3の値の前後に何か1文字ずつある文字列 |
「E3」の前に"?&"、後に"&?" | "?"&E3&"?" |
セルE3の値の後に何か1文字ある文字列 | 「E3」の後に"&?" | E3&"?" |
セルE3の値の前に何か1文字ある文字列 | 「E3」の前に"?&" | "?"&E3 |
例えば、先ほどの表から「盛岡市を含む文字列」を検索したい場合には、次のような数式になります。
【セルF3の数式】
=VLOOKUP("*"&E3&"*",B2:C4,2,FALSE)
ポイントは、次の通りです。
- ①『含む』と『~から始まる』と『~で終わる』のどれで検索するか?
- ②文字数を指定するか?
- ③検索値のワイルドカードのみを「"」で囲む
- ④ワイルドカードとセル番号を「&」でつなぐ
①と②は、前項と同じです。
③は、前項と違って全部を囲ってはダメです。例えば「"*E3*"」だと「E3という文字列を含む」という条件になってしまいます。
④は、&がないとエラーになります。
この4点に気を付ければ、セルに入力した値を条件に、あいまい検索をすることができます。
4.あいまい検索をする際の注意点
VLOOKUP関数であいまい検索をする際、注意しなければならないことは、「検索値と一致するセルが複数あった場合には、一番上のセルが優先される」点です。
上の表では「盛岡市」が含まれる住所が2つありますが、数式を入れているセルF3に表示されているのは一番上のセルの「田中 花子」さんです。
あいまい検索のときだけではありませんが、VLOOKUP関数は「条件に一致したもののうち、一番上のセルが優先される」ということを覚えておきましょう。
以上参考になれば幸いです。
次にページでは「別シート・別ブックからVLOOKUP関数を使ってデータを抜き出す方法」を解説しています。
【口コミ・評判のいいExcel本の紹介】
VLOOKUP関数のその他の記事はこちらです。
- VLOOKUP関数その他の記事はこちら
- ◎基本的な使い方
- ◎「以上/未満」の条件指定の仕方
- ◎〇番台の条件にする方法
- ◎部分一致の条件指定の仕方
- ◎別シートから値を抜き出す方法
- ◎別ブックから値を抜き出す方法
- ◎数式コピーで横方向の値を簡単に取得する方法
- ◎2番目、3番目以降の値を抽出する方法
- ◎#N/Aエラーになる3つの原因と対処方法
- ◎#REF!エラーになる原因と対処方法
- ◎#VALUE!エラーになる原因と対処方法
- ◎空白を0ではなく空白で表示する2つの方法
- ◎「IF(ISERROR(VLOOKUP」の意味と使い方
- ◎IFERROR関数とVLOOKUPの組み合わせ方
- ◎空白でもエラーでも空白で表示する方法
- ◎複数条件にする方法
- ◎セルや範囲を固定しコピーのズレを防ぐ方法
- ◎文字列を条件にする方法
- ◎列番号の意味と指定の仕方