【「INDEX関数とMATCH関数を組み合わせると便利!」という話を時々聞くけど、いったいどういう事?】という疑問に答えます。
この記事がご好評いただいたことをきっかけに、動画による説明も登場しました!
【動画でわかる・説明編】VLOOKUPの限界!MATCH関数+INDEX関数はなぜ便利?
【動画でわかる・実習編!】MATCH関数、INDEX関数を使ってみよう
INDEX関数 & MATCH関数
マーク
風の噂で聞いたんだけど、「INDEX関数とMATCH関数の組み合わるとVLOOKUP関数よりも便利」らしいんだけど、それって本当?
クマリオ
うむ。確かに、VLOOKUP関数からくらべると、自転車がバイクになるくらいの違いがあるから、覚えておいて損はない。ちょっと上級技だがな。
【例題をみてみよう。こんな場合、どうしよう?】
「ざっくりアイス」の商品コードを求めて下さい。(INDEX関数とMATCH関数を使用すること)
マーク
ん?こういうパターン、見たことあるなぁ。VLOOKUP関数でできるんじゃない?
クマリオ
予想通りの回答だな。
本当にVLOOKUPでできるかな?やってみたまえ。
本当にVLOOKUPでできるかな?やってみたまえ。
VLOOKUP関数でやろうとすると…
>>VLOOKUP関数の基本的な使い方は、過去の記事からご覧ください。
マーク
①よーし、やってみよう。まずは「=VLOOKUP(」…と。
マーク
②検索値は「ざっくりアイス」ね。
クマリオ
③そして検索範囲は、在庫表の範囲内を指定する。
マーク
④そして仕上げ!1列目である商品コードを知りたいから、列番号に「1」と入力しよう。最後は完全一致の「FALSE」と入れたぞう!
マーク
あれ、エラーになっちゃった!?
クマリオ
うむ。見事に予想していたエラーを起こしてくれてありがとう。
そう、VLOOKUPを使うと、こういう事になってしまってうまくいかないのだ。
なぜ、VLOOKUP関数ではできないの?
クマリオ
VLOOKUP関数は、検索値がいちばん左にあることを前提にできている。なので、左側の値を検索してから、右の値を参照するようにできているのだ。
クマリオ
だが今回は、商品名(右側)を検索してから商品コード(左側)の値を参照しようとしているので、それはできない。
マーク
なんだってーーー!?それじゃぁ片道しか進めない、一方通行の道路みたいじゃないか!
そこで、MATCH関数&INDEX関数の合わせ技を使おう!
①INDEX関数
クマリオ
それではまず、INDEX関数を使ってみよう。まずは検索範囲を指定する。
②行番号は?
マーク
え、でも行番号はどうやって指定するの?いま「ざっくりアイス」は3行目にあるけど、いつも3行目にあるとは限らないから、関数で検索させた方がいいよね?
③そこでMATCH関数を利用!
クマリオ
そう!そこでMATCH関数の出番というわけだ。MATCH関数を使って、「ざっくりアイス」が何行目にあるのかを調べる。
マーク
おぉ!?INDEX関数の中でMATCH関数を使うわけだね!
④最後に「1」
クマリオ
そして、INDEX関数の最後の引数として「1」を入力しておく。これは、1列目(商品コード)を参照したいから、その「1」だ。
⑤できた!
クマリオ
そして、確定する。
どうだ?VLOOKUP関数ではできなかったことが実現できたわけだ。
マーク
本当だぁ!
VLOOKUP関数で参照できなかったデータも、INDEX関数&MATCH関数の組み合わせで参照できることがあるんだ!?
クマリオ
そういうわけだ。
VLOOKUP関数の使い方に慣れてきたら、その応用技として、今回のINDEX関数&MATCH関数の組み合わせ技を覚えておくといい。困ったら、この記事に戻ってくるといいかもしれない!
いかがでしたか?今回はここまで!
[本編で使った練習用のExcelファイルは、こちらでダウンロードできます。]
最近まで、VLOOKUP関数使ってました。例題で、ついついVLOOKUP関数使うとこでした。これからはやはりINDEX関数とMATCH関数の組み合わせで検索値を検出した方がよさそうですね。
XLOOKUP関数は自分のパソコンには適応してないようですし、表の一覧作成にも役立つと思います。