MATCH関数の使い方

おさ氏:どうもみなさん、こんにちは。「おさとエクセル」のおさです。3、4ヶ月ぶりの投稿になります。みなさん、ご無沙汰しております。

今日は何をするかといいますと、INDEX関数とMATCH関数という、エクセルの中でのVLOOKUP関数のさらにちょっと発展したバージョンの参照関数みたいなのがあるんですけれども、これをしっかり使いこなすための土台を築いていきます。

なので、たぶん今回、次回、そして次々回、シリーズになってお届けすることになると思いますので、どうぞよろしくお願いいたします。

さっそくワークシートの中でやっていきましょう。どうぞよろしくお願いいたします。

それでは、MATCH関数の使い方、見ていきましょう。MATCH関数というのは、「あるデータが選択範囲の中の何番目にあるのか」というものを引っ張ってきてくれる関数です。

具体的には、「上から〇番目にありますよ」、あるいは、「左から〇番目にありますよ」というかたちで、数字を返してきてくれる関数ですね。

今回は名前のロケーション、具体的には「Osanai」という文字列が、ここ(左側の選択範囲)のデータセットの何番目にあるかというものをはじきだしてもらいます。

まあ、見た目で分かる通り、2番目ですよね。選択範囲の中の2番目に「Osanai」という文字列があるので、MATCH関数が返してくれる値も、「2」という数字になるはずです。

検査値、検査範囲、照合の種類、この3つが引数ですね。照合の種類については、VLOOKUP関数とかでやってた近似値とか完全一致の違いとほぼ一緒ですので、サクッと飛ばします。

ですので、この2つ(検査値、検査範囲)、第1引数、第2引数をしっかり指定すれば使えるようになるんだな、ということを覚えておいてください。

で、検査値としては、今回「Osanai」という文字列を調べたいので、D3のセル設定してあげますね。

そして、検査範囲としては、「Osanai」という文字列が含まれているここのデータセットを選んであげます。そうすると、……あれ? 「いつも見てくれてありがとう」と、なんか出てきましたね。

これはですね、もともと僕が収録する前にここの選択範囲に名前をつけてました。見てみましょう。ちょっとMATCH関数消しちゃいましたけど。

ここを選択範囲にすると、ここに出てきます。名前の定義です。「いつも見てくれてありがとう」と流れてますね。はい、MATCH関数。

ちょっと脱線しちゃいましたけど、もう1回しっかり打って、やり直しましょう。

はい、検査値、検査範囲、照合の種類。そして、(検査値のところに)「Osanai」(D3セル)を選択して。

(検査範囲のところに)ここ(B2~B9セル)を選択してあげて、「いつも見てくれてありがとう」。はい、選択範囲しっかり設定できました。

そして、3つ目の引数、指定しても指定しなくてもどっちでもOKです。僕は完全一致ですよってことをアピールするために、「,0」と打って、VLOOKUPと一緒ですね、「完全一致」と指定させました。

そうすると、帰ってくる値は「2」ですよ、と。

「Osanai」という文字列は、この中(左のデータセット)の2番目にあります、ということです。

では、ここを例えば「Phil」に変えてあげましょうね。「Phil」にすると、はい、「7」に変わりました。

7番目にありました。(左のデータセットを上から数えて)1、2、3、4、5、6、7、OKですね。

では、もしここ(左のデータセット)に「Phil」が2人いたらどうなるか、それを見てみましょう。ここ(B4セル)に「Phil」と打ったげます。はい、そうすると、「3」と帰ってきましたね。

MATCH関数の役割

MATCH関数は、同じ文字列、同じデータセットがあった場合に、上のもの、先に出てくるものを引っ張ってきます。

今回の場合だと、上から3番目にあるほうの「Phil」ですね。上から7番目にあった「Phil」は無視されてしまいます。これをよく覚えてください。

他には、検査範囲を工夫することによって、曖昧、「名前、こいつ思い出せないけど」みたいなことを、ワイルドカードというものを使ってカバーすることができます。

例えば、「Ph*」というふうに打ってあげると、 これは「Ph」で始まる人が上から何番目にいるか、っていうことを調べてくれてます。

例えば他には、じゃあ、「O*」でいきましょうか。「Osanai」の「O」ですね。

はい、そうすると、「2番目にいますよ」。(左のデータセットを見て)はい、2番目にいましたね。「*」で「sanai」をカバーしてくれてます。

もう1個、ワイルドカード覚えてほしいのは「?」ですね。例えば、「?」をここで打つと、はい、エラーメッセージ返ってきてしまいました。

「?」と「*」の違いはなにかというと、「*」は複数の文字をカバーできます。複数のデータですね。一方で「?」というのは、1文字分しかカバーしてくれません。

ですので、例えばここ(B3セル)に「Os」という人が仮にいた場合、この場合は、この場合は「2」という数字が返ってきますね。

もちろん、この時、「*」を指定していた場合、これはちゃんとカバーできますので「2」と出てきますね。

「?」と「*」は、ちょっとカバーする範囲が違うんだな、と。1文字分なのか、複数個いけるのか、それの違いだということも知っておきましょう。

検査範囲の指定の仕方ですね、ワイルドカード使うことで工夫できるんだな、っていうことも知っておいてください。

はい、今日はMATCH関数の使い方、これで以上です。どうもありがとうございました。

ということでね、いつも見てくださってありがとうございます。今日はMATCH関数やってきましたが、MATCH関数は非常にシンプルな関数でしたね。あるデータが上から何番目にあるのか、それを引っ張ってきてくれる関数ですね。

次回勉強するINDEX関数、これとMATCH関数を組み合わせることで、今までVLOOKUP関数ではできなかったことができるようになります。

お楽しみに、乞うご期待ということでお待ちください。

あとは、ワイルドカードですね。「*」と「?」の違いというのも今回やりましたので、これも押さえておくようにしましょう。

ということでね、今日もお疲れさまでした。また次回、よろしくお願いいたします。ではではでは、See you next time!

本日の一言

僕はね、相変わらずサラリーマンをやってるわけですけども、社会人2年目も財務とか経理とか、そういうバックオフィスの人間として働いております。

で、新入社員も入ってきまして、先輩・同期・後輩と、みんながYouTubeチャンネル見るようになってしまいました。僕のプライベート、ダダ漏れということですね。

引き続き、エクセルの役に立つコンテンツを上げていきたいなと思っております。どうぞよろしくお願いします。