VLOOKUPで部分一致検索をするには
ExcelでVLOOKUP関数を使用する際、通常は検索値が完全一致する値で検索を行うことが多いでしょう。
しかし、検索する文字列の一部だけが一致していれば良い場合もあります。そんな時に役立つのが「部分一致検索」です。
この記事では、データ検索をより効率的に行いたい方のために、VLOOKUPでワイルドカードを使って部分一致検索を行う方法や部分一致検索の活用方法、さらに便利なXLOOKUPでの部分一致検索の方法などを解説します。
VLOOKUPと部分一致検索
ここでは、まずVLOOKUP関数の基本的な使い方を確認し、部分一致検索がどのようなものかについて説明します。
VLOOKUPの使い方
まずはVLOOKUPの基本的な使い方を確認しましょう。VLOOKUPは、指定した範囲内から特定の値を検索し、その値に関連するセルからデータを取得するために使います。
VLOOKUPの構文は「=VLOOKUP(検索値, 範囲, 列番号, [検索方法])」です。
「検索値」は検索したい値を指定します。「範囲」は検索対象のデータの範囲を指定し、検索値は範囲の1番左の列にある必要があります。
「列番号」は範囲内で取得したいデータがある列の番号を指定します。1から始まる正の整数を使用します。
「検索方法」は、FALSE(完全一致で検索する)かTRUE(近似一致で検索する)かを指定します。省略した場合、デフォルトでTRUE(近似一致)となりますが、近似一致で検索すると意図しない検索結果となる場合があるため、通常はFALSEを明示的に記述して、完全一致で検索することをおすすめします。
部分一致検索とは
通常、VLOOKUPでは検索値と一致する値を探して、それに関連するデータを取得します。例えば、「筆箱(ブラック)」という商品名を検索したい場合は、検索値を「筆箱(ブラック)」と記述します。
一方、部分一致検索とは、指定した文字列を含むセルを検索する方法を指します。例えば商品のリストから「ブラック」を含む商品名を抽出する場合に使用します。
この部分一致検索は、VLOOKUPの4つめの引数である「検索方法」で指定できる近似一致とは異なります。
近似一致は数値に対して最も近い値を見つけますが、部分一致検索では、特定の文字列が含まれていることで検索にヒットします。
ワイルドカードを使って部分一致検索するには
VLOOKUP関数で部分一致検索を行う際には、指定した文字列の一部が一致するデータを検索できるワイルドカードを使用します。ここでは、ワイルドカードを使った検索の例を解説します。
ワイルドカードとは
VLOOKUPで部分一致検索を行いたい場合には、ワイルドカードを使用します。ワイルドカードを使うことで、指定した検索条件を含むデータを見つけられます。
Excelで主に使用されるワイルドカードには以下の2種類があります。GoogleスプレッドシートのVLOOKUPでも使えますので、覚えておきましょう。
■「*」 「*」は任意の文字列を表します。たとえば、「*山田*」は「小山田」や「山田太郎」など、「山田」を含む任意の文字列に一致します。
■「?」 「?」は任意の一文字を表します。たとえば、「?木」は「鈴木」や「青木」など、任意の一文字と「木」が一致する文字列に一致します。「??木」の場合、「代々木」はヒットしますが、「鈴木」はヒットしません。
ワイルドカードで部分一致検索する
それでは、実際にVLOOKUPでワイルドカードを使って部分一致検索する方法を具体的に説明します。
例えば、商品一覧の中から、商品名が「ブラック」を含む商品の価格を取得することを考えましょう。商品名は、商品の種類と商品カラーを組み合わせた値で表されているとします。
VLOOKUP関数を使ってデータを検索します。例えば、範囲A3:B7から「ブラック」を含むデータを検索し、その行の2列目の値を取得する場合、数式は「=VLOOKUP("*ブラック*",A3:B7,2,FALSE)」となります。
検索値「ブラック」の前後に、任意の文字列を表すワイルドカードの「*」が記述されていることに注目してください。これにより、「任意の文字列」+「ブラック」+「任意の文字列」が検索対象となります。
「任意の文字列」は、長さ0の文字列、つまり何も文字がない場合も含まれます。
数式の中に直接検索値を記述せずに、セルに入力された値を使ってワイルドカードで検索したい場合もあるでしょう。
その場合、「"*" & D3 & "*"」のように「*」を「""」で囲み、&を使ってセルと繋げて記述します。こうすると、D3セルに記述する内容を変更するだけで簡単に部分一致検索ができます。
VLOOKUPの部分一致検索の活用方法
ここでは、VLOOKUP関数を使った部分一致検索の活用方法について説明します。ワイルドカードの「*」と「?」の使い分け、前方一致・後方一致検索、そして部分一致検索を行う際の注意点について確認しましょう。
「*」と「?」の使い分け
ワイルドカード「*」と「?」を使用することで検索条件を柔軟に設定できます。 「*」は、任意の文字で何文字でも対応できます。
一方、「?」は任意の一文字を表す記号です。例えば、「?市」と設定すると、「市」の前に一文字ある文字列を検索します。このように、「?」を使うことで、特定の文字数を指定して部分一致検索を行うことができます。
前方一致と後方一致検索
前方一致検索とは、検索値が特定の文字列で始まる場合に一致するデータを探す方法です。文字列の前半部分が確定しており、後半部分が不明な場合に便利な検索方法です。
逆に、後方一致検索とは、検索値が特定の文字列で終わる場合に一致するデータを探します。文字列の前半部分が不明な場合に使えます。
例えば、「絵の具」で始まる商品名を検索したい場合は「絵の具*」、「絵の具」で終わる商品名を検索したい場合は「*絵の具」と記述します。
「*絵の具*」とすれば、前後に文字があってもなくても、「絵の具」が含まれるすべてを検索の対象にできます。
部分一致検索の注意点
ワイルドカードを使った検索値がヒットするセルが複数ある場合、注意が必要です。
VLOOKUP関数は、検索で見つかった値が複数ある場合は、検索範囲内で検索値にヒットする最初のセルを返します。
例えば、「*ブラック」を含む商品名が2つあった場合、上から順にたどって最初に一致したセルのデータのみが返されます。
例えば、検索対象の列に「筆箱ブラック」と「シャープペンシルブラック」がある場合、「*ブラック」の検索値で部分一致検索すると、列の上部にある「*ブラック」のデータが返されます。
部分一致検索は便利ですが、検索値に該当する複数のセルが存在するケースが多くなります。
そのため、検索対象の列にどのような値が存在するかを把握し、一意の結果が得られるように考えて検索する必要があります。
XLOOKUPでも部分一致検索が可能
VLOOKUPには、検索範囲が最左列に限られることや、検索結果が上からしか取得できないという制約があります。
これらの制約を克服するためにExcelに導入された関数としてXLOOKUPがあります。XLOOKUPでも部分一致検索を行うことができます。
XLOOKUPはMicrosoft365のExcelやExcel 2021などで使用でき、検索値は左端に限らず指定でき、検索方法の指定が可能です。
XLOOKUPの構文
XLOOKUP関数の基本的な構文は「=XLOOKUP(検索値, 検索範囲, 戻り範囲, [見つからない場合], [一致モード], [検索モード])」です。
「検索値」は、検索する値を指定し、「検索範囲」は、検索値を探す範囲を指定します。
「戻り範囲」は、検索値が見つかったときに返す値が含まれる範囲を、検索値の範囲と同じサイズで指定します。戻り範囲は検索値の列よりも左側にあっても問題なく、VLOOKUPよりも検索値の位置を柔軟に設定できます。
「検索値, 検索範囲, 戻り範囲」の3つが、必須の引数です。続く以下の3つは、省略可能な引数ですが、XLOOKUPで部分一致検索を行う場合は「一致モード」を「2」に指定する必要があります。
「見つからない場合」は、検索値が見つからなかったときに返す値を指定します。設定しないとエラーが返ります。
「一致モード」は、検索方法を指定します。0は完全一致、1は近似一致、2はワイルドカードです。部分一致検索を行う場合、この「一致モード」を「2」のワイルドカードに指定します。
「検索モード」は、検索の順序を指定します。1は上から下、-1は下から上に検索します。下から上に向かって検索できるのが、VLOOKUPとの違いとして挙げられます。
XLOOKUPでの部分一致検索の方法
例えば、XLOOKUPで商品名が「ブルー」を含む商品を検索し、それに対応する価格を出力する場合、「=XLOOKUP("*絵の具ブルー*",A2:A4,B2:B4,"見つかりません",2)」のように記述します。
ワイルドカードの使い方はVLOOKUPと同じで、「*」は任意の文字列を表し、「?」は任意の一文字を表します。
XLOOKUP関数では、VLOOKUP関数の制約を克服し、部分一致検索も使えてさらに柔軟な検索を行うことができます。XLOOKUPを使えるバージョンのExcelを使用している場合は、ぜひを活用してください。
VLOOKUPの部分一致検索でデータ管理をもっと便利にしよう
ここまで、VLOOKUPでワイルドカードを使った部分一致の方法を解説してきました。VLOOKUPを使ったデータ取得の幅を広げられることが分かります。
検索するデータが多いほど、意図したデータを取得するのが難しくなります。必要なデータを適切に取得するのに部分一致検索が活用できないか、ぜひ検討してください。
その他VLOOKUP関連記事
その他、VLOOKUPに関連する内容は、下記の記事でもご紹介しています。ぜひ参考にご覧ください。
VLOOKUP関数で複数条件を指定する?簡単にできる方法を図解
VLOOKUPで別シートを参照するには?記述方法や実践例を解説
VLOOKUP関数でエラーが出た?#REF!エラーなどの解決法を詳しく解説
VLOOKUP関数がうまく反映されない?その原因と対策を図解
VLOOKUPとIFの組み合わせで何ができる?便利な使い方を解説
VLOOKUPで部分一致検索するには?ワイルドカード使用法を解説
VLOOKUPとXLOOKUPの違いとは?使い方を図解で解説
VLOOKUPで0を表示しない方法とは?発生原因と対処法を解説
マイナビエージェントに無料登録して
転職サポートを受ける
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから