エクセル 関数|index関数とmatch関数で一覧から値を取得しちゃおう

Pocket

エクセル index match
前回、「エクセル 関数|vlookup関数で一覧から値を取得しちゃおう」でvlookup関数を紹介しましたが、index関数とmatch関数を併用する事で同じ機能プラスαを実現できます。

vlookup関数では検索キーの右側(右の列)に取得する値が無くてはなりませんが、検索キーの左側(左の列)を取得したいケースもあるかと思います。

index関数とmatch関数を併用する事で、検索キーの左側の値を取得出来ちゃいます。

index match

< match関数 >

範囲内から指定した値を探して、範囲内の上から数えた位置を求める関数です。


=match(検索値 , 検索範囲 , 完全一致or近似値)


match

match(“ハサミ” , 検索範囲(赤い枠, 完全一致)の様に指定した場合、”ハサミ”は赤い枠の3番目にあるので、””が返ってきます。

また、match(“消しゴム” , 検索範囲(赤い枠, 完全一致)とした場合は、”消しゴム”は赤い枠の4番目にあるので、”が返ってきます。

この様にmatch関数は検索値が検索範囲の上から何番目にあるかを返してくれます

< index関数 >

範囲内の縦いくつ、横いくつの位置にあるセルの値を取得する関数です。


=index(範囲 , 範囲内の何行目 , 範囲内の何列目)


index

index(範囲(青い枠) , 2 , 1)の様に指定した場合、青い枠の上から2行目、左から1列目にある値の”B”が返ってきます。

また、index(範囲(青い枠) , 3 , 2)とした場合は、青い枠の上から3行目、左から2列目にある値の”ハサミ”が返ってきます。

この様にindex関数は指定した範囲において、上から何番目、左から何番目と位置を指定する事で格納されている値を返してくれます

< index関数 + match関数 >

index関数の”範囲内の何行目”をmatch関数で求める事で、あとは何列目から取得するかを指定すれば、vlookup関数の機能を実現できます。


=index(範囲 , match関数 , 範囲内の何列目)


match関数で検索値が何行目にあるかを特定する事がポイントとなります。

index match

◆”ハサミ”の商品コード、単価を取得しい場合

=index(範囲(青い枠),match(“ハサミ”,赤い枠,完全一致),範囲内の何列目)

“ハサミ”をmatch関数で求めると上から3行目にあるので、”3”となります。あとは、範囲内の何列目の値を取得するかを指定します。

=index(範囲(青い枠) , 3 , 1)  ⇒ “C” (商品コード)
=index(範囲(青い枠) , 3 , 3)  ⇒ “100”
(単価)

一覧表の中から検索条件にマッチしたを探し、vlookup関数では取得できない検索キーより左側にあるの値も取得できちゃう「index()関数 + match関数」使ってみてはいかがでしょうか。index()関数、match関数の詳細な使い方を知りたい方は、別のサイトや書籍等で確認してみてください。

 

 

Pocket