【Excel】INDEX・MATCH関数の使い方  VLOOKUPとの違いも解説!
スポンサーリンク

しろねこ
うーん。どうしたらいいんだろう…

くろねこ
どうしたんだい、しろねこくん

しろねこ
あ、くろねこさん
この表から、D列の組合員IDを検索値として、
C列の氏名を取り出したいんです
でもVLOOKUP関数じゃできなくて…
ExcelのINDEX関数+MATCH関数が使えそうな表

くろねこ
なるほど、探したいデータが組合員ID=D列より左側にあるんだね
そうなるとVLOOKUP関数じゃ抽出できないもんね

しろねこ
そうなんです
こうなったら氏名の列の左に組合員IDの列を移動させて…

くろねこ
ち、ちょっとまって!
列を移動しなくても、いい方法があるよ!
見ててごらん!

くろねこ
カタカタカタ…  ッターン!

ExcelのINDEX関数+MATCH関数を使った表

しろねこ
!!!
氏名が抽出できてる!
得意げなキーボードの音はともかく、すごい!
くろねこさん、どうやったんですか?

くろねこ
ふっふっふ、すごいでしょ
今回ボクは「INDEX関数」と「MATCH関数」を合わせて使ったのさ!
この式を見てごらん!
ExcelのINDEX関数+MATCH関数を使った式

しろねこ
えっと…INDEX関数のなかに、さらにMATCH関数が入ってる?
んっと…んっと…(ぷしゅー)

くろねこ
しろねこくん頭から煙が出てるよ!
だいじょうぶ!難しくみえるけど、ひとつひとつ説明するから安心して!

しろねこ
おねがいします!

 

今回くろねこくんが示した式は、INDEX関数のなかにさらにMATCH関数があってややこしい!
ひとつひとつひも解いていきましょう。

「INDEX関数やMATCH関数ってなんだっけ?」というかたは、こちらの記事でおさらいしておきましょう。

INDEX関数とMATCH関数を組み合わせた使い方

今回とりだす値は、「組合員IDが55555の人の氏名」でしたね。
これをINDEX関数のみを使ってあらわすと、こうなります。
Excelの
INDEX関数で「上から5番目」「左から3番目」のデータを取り出していますね。
くろねこくんが結果として示した式とどこが違うかと言うと、「5」の部分を、MATCH関数であらわしているところです。
ExcelでINDEX関数+MATCH関数を使った式の比較

MATCH関数の中身を見てみると、範囲はD2:D12、検索値はJ11セルの組合員ID、検索条件は完全一致。
つまりMATCH関数で、「J11セルの値と同じ組合員IDは、上から何番目にあるか」を取り出していたんです。
そして「上から何番目にあるか」を表すMATCH関数を、INDEX関数の入力として使っていたんですね。

くろねこくんが示した式をもういちど見てみましょう。
ExcelでINDEX関数+MATCH関数を使った式の比較

INDEX関数の範囲はA2:G12、MATCH関数は「指定した組合員IDが上から何番目にあるか」。
列の番号は左から3番目で固定なので、「3」となっています。

VLOOKUP関数ではできない「検索条件の左側の値」を抽出できる

さらにこの組みあわせのすごいところは、「検索値の左側の値をとりだしている」ところです。
左側の値を抽出するINDEX関数+MATCH関数
検索条件の組合員IDはD列。
とりだしたい氏名はC列。

このような場合、まず浮かぶのはVLOOKUP関数ですね。
しかしVLOOKUP関数は、とりだしたい値が検索値の列より右側にある場合にしか使えません。
そこでこの「INDEX関数+MATCH関数」の出番というわけなんです。
VLOOKUP関数ってどんな関数だっけ?という場合、こちらの記事をご覧ください。

くろねこ
しろねこくん、INDEX関数とMATCH関数の組み合わせ方はわかった?

しろねこ
MATCH関数を行の検索に使って、その結果をさらにINDEX関数に入力しているんですね!
最初は頭がこんがらがりましたけど、ひとつずつ見てみたらわかりました!

くろねこ
今回の例みたいに、Excelでは「関数を組み合わせて使う」ことがとても多いんだ
そんなとき最初は「うっ!」ってなっちゃうけど、関数をすこしずつ紐解くと案外わかったりするよ!

しろねこ
こんがらがったらひとつずつ、ですね!
わかりました!
Excelではいくつもの関数を組み合わせて使うことがとても多いです。
そして他人の作ったそんな式をみて「なんじゃこりゃ!?」となることもとても多いです。(;_;)
そんなときは、ひとつひとつ紐解いてみましょう。
スポンサーリンク
おすすめの記事