目標:VLOOKUP関数でワイルドカード「*」を使い、前方一致、後方一致、部分一致検索をできるようになる!
VLOOKUP関数を使って何かを検索する時、ワイルドカードというものを使うと、あいまいな検索をすることができるようになります。(完全に一致していなくても検索可能になるという意味です!)
このあいまいな検索とは、検索値に対して前方一致(前の部分だけ一致)、後方一致(後ろの部分だけ一致)、部分一致(その文字列が含まれていれば検索可能)といった検索の種類があります。
今回はそれらの検索方法を一つずつ見ていきたいと思います!
エクセルのVLOOKUP関数でワイルドカードを使い前方一致検索を行う!
VLOOKUP関数でワイルドカードを使い、前方一致で検索したい時、例えば検索値を「文字列*」とすると、文字列の最初の部分が一致していれば検索することができるようになります。(ちなみにこのワイルドカード「*」(アスタリスク)は「どんな文字でもOKで、何文字でもOKの文字列」という意味でとらえるとわかりやすいと思います。)
つまり「文字列*」とすることで「文字列」以降の文字は何でもOKということになります。
例えば上の写真のようなパンの種類と価格の表がある時、D3番地に入力されている文字列は「パン」ですが、この「パン」を前方一致とする検索をして、該当する金額をE3番地に出力してみたいと思います。
どのようにすれば良いのかですが、結論からお伝えすると、VLOOKUP関数の引数の設定をする時に、検索値に「パン*」と入力して検索すれば、表の中から「パン」から始まる食べ物の金額を出力できます。今回の場合だと「パンケーキ」の金額「300」が出力されます!
(E3番地にVLOOKUP関数を使い、検索値を「パン*」で設定)
(他の引数も設定しOKボタンをクリック!)
※引数の入力方法がわからない場合はエクセル VLOOKUP関数の使い方!完全一致探しは0またはFALSE!の記事で説明していますのでそちらをご覧ください。
(すると「パン」で前方一致した金額の「300」が出力される!)
このように、ワイルドカードを使えば、検索値が完全に一致していなくても文字列の最初の部分だけ一致(前方一致)していれば検索することが可能になります!
また、ワイルドカードを使えば、前方一致だけでなく、後方が一致していれば検索可能になるなど、いろいろな方法で検索ができるようになります!では次は後方一致の例を見ていきましょう。
エクセルのVLOOKUP関数でワイルドカードを使い後方一致検索を行う!
次は後方一致という検索方法について見ていきたいと思います!こちらは言葉の通り検索値の後ろ側の文字列が一致しているものを検索する方法です。
今回は文字列の最後が「○○○パン」という文字列を検索するようにしたいと思います。そのような場合、検索値には「*パン」と入力すると検索することができます。また、今回の場合最後に「パン」と付く文字列は複数あります。
(最後に「パン」と付く名前が複数ある)
このような場合、検索対象になるのは、表の一番上の行になります。そのため今回の場合だと「あんパン」が検索対象になります。
(表の上の行から見ていった時に一番最初に「○○○パン」と付くものが対象)
では、実際にVLOOKUP関数を使ってE2番地に「*パン」を検索値とする金額を出力していきたいと思います。まずはE3番地を選択して関数の挿入ボタンをクリックします!
(E3番地を選択➡関数の挿入ボタンをクリック)
(VLOOKUP関数を選択してOKボタンをクリック!)
(新しいダイアログボックスが表示されるので検索値に「*パン」と入力!(またはD3番地を選択))
(他の引数にもそれぞれ入力してOKボタンをクリック!)
※引数の入力方法がわからない場合はエクセル VLOOKUP関数の使い方!完全一致探しは0またはFALSE!の記事で説明していますのでそちらをご覧ください。
(するとE3番地にB2番地の値が出力されます!)
このように「*文字列」とすれば後方一致で検索を掛けることができます!また、一致するものが複数ある時は表の上の行から見ていった時に最初に一致するものになります。これは前方一致の時も一緒です。
エクセルのVLOOKUP関数でワイルドカードを使い部分一致検索を行う!
最後はある文字列が入ってさえいれば検索できる方法を紹介していきます。結論から言うと検索値に「*文字列*」と入力します。そうするとその文字列を含む値を検索できるようになります。
「*文字列」なら文字列の前は何でもOK、「文字列*」なら文字列の後は何でもOKだったと思いますので「*文字列*」とすれば、文字列の前も後ろも何でもOKになると考えればわかりやすいかと思います。
試しに下の写真のような表で検索値を「*サンドイッチ*」としてE3番地にその価格を出力してみましょう!
(E3番地にVLOOKUP関数を使い、検索値を「*サンドイッチ*」で設定)
(他の引数も設定しOKボタンをクリック!)
※引数の入力方法がわからない場合はエクセル VLOOKUP関数の使い方!完全一致探しは0またはFALSE!の記事で説明していますのでそちらをご覧ください。
(すると「サンドイッチ」で部分一致した金額の「550」が出力される!)
このように、ワイルドカードを使って「*文字列*」とすれば、検索値が完全に一致していなくても文字列の一部分だけ一致していれば検索することが可能になります!
☆今回のポイント
1.ワイルドカードを使えば部分的に一致している文字列で検索できる!
2.「文字列*」は前方一致、「*文字列」は後方一致、「*文字列*」はその文字列が含まれていれば検索可能!
一通り把握したら操作に慣れるために練習問題をやってみましょう!
【練習問題】エクセル VLOOKUP関数でワイルドカード「*」で部分一致検索!
↑こちらをクリックすると練習問題をダウンロードできます!
(ダウンロード後、ファイルを開いたら「編集を有効にする(E)」をクリックして入力できるようにしてください。)
1.E3番地にVLOOKUP関数を使って、「検索値」を「パン*」としパンケーキの価格を出力してみましょう!
2.E3番地にVLOOKUP関数を使って、「検索値」を「*パン」としあんパンの価格を出力してみましょう!
3.E3番地にVLOOKUP関数を使って、「検索値」を「*サンドイッチ*」とし朝食サンドイッチセットの価格を出力してみましょう!
【解答】エクセル VLOOKUP関数でワイルドカード「*」で部分一致検索!
今回の練習問題の解答はこの記事に書いてあるのでそちらを参考にしながら進めてみましょう。
お疲れ様でした!
次のページではVLOOKUP関数のワイルドカード「?」について学習していきます。
今回学んだ「*」とは少し違った指定ができるようになります。覚えておくと便利なのでしっかり区別して覚えておきましょう!
次のページ:エクセル VLOOKUP関数でワイルドカード「?」で部分一致検索!
前のページ:エクセル VLOOKUP関数で複数の条件で検索する方法!
【こちらもおススメ!】
■エクセル VLOOKUP関数の使い方!完全一致探しは0またはFALSE!