Excel便利帳

VLOOKUP関数(MATCH関数✖️INDEX関数のあわせ技)

 

「フリガナ」を入力するだけで、「社員番号」を自動検索してくれたらいいのに・・・

 

 

ここで、MATCH関数とINDEX関数のあわせ技の出番です

 

MATCH関数とINDEX関数で、VLOOKUP関数の弱点を克服!

MATCH関数

検索したいデータが何番目にあるか?を返す

=MATCH(検索値 , 検索範囲 , 照合の種類 )

※「照合の種類」とは

 完全一致=FALSE(=0)または近似一致=TRUE(=1)のことで、FALSE(=0)が主流

今回の表でセルB3に入る数式

=MATCH ( A3 , G : G , 0 )

 

 

INDEX関数

ある範囲において行番号・列番号を指定したセルのデータを返す

= INDEX ( 配列 , 行番号 , 列番号 )

今回の表でセルC3に入る数式

= INDEX (E : H , B 3 , 1 )

step
1
「配列(範囲)」にあたるのが「E列」〜「H列」

step
2
「行番号」は先ほどMATCH関数で返ってきた「6行目」=「セルB 3 」

step
3
「列番号」は「配列(範囲)」の中の「1列目」ということで「1」

 

 

ここまではMATCH関数とINDEX関数を別々に解説してきました。 次は、MATCH✖️INDEX関数を一行にまとめて記述します。

= INDEX ( E : H , MATCH ( A 8 , G : G , 0 ) , 1 )

 

 

ちょっと複雑に見えるかもしれませんが、

つまりINDEX関数の「行番号」にあたるところにMATCH関数を入れ込んでいるわけです。

VLOOKUP関数(MATCH関数✖️INDEX関数のあわせ技)のまとめ

まとめ

MATCH関数・・・検索したいデータが何番目にあるか?を返す

 = MATCH(検索値 , 検索範囲 , 照合の種類(基本的にFALSEの「0」を入力 )

INDEX関数・・・ある範囲において行番号・列番号を指定したセルのデータを返す

 = INDEX ( 配列 , 行番号 , 列番号 )

MATCH関数✖️INDEX関数のあわせ技

   = INDEX ( 配列(範囲) , 行番号(MATCH関数) , 列番号 )

 

いかがでしたか?

慣れるまでは、MATCH関数とINDEX関数を別々に練習してみると良いかもしれません。

実際に何度か数式を試してみると「ああ、なるほど!」とストンと落ちると思います。

-Excel便利帳

© 2021 さよラボ sayoblog