
INDEX関数とMATCH関数を組み合わせて必要な値を取り出す方法の解説
INDEX関数とMATCH関数の基本的な使い方の記事はこちら

VLOOKUP関数に関する記事はこちら

ここで軽くINDEX関数とMATCH関数のおさらいをしておきましょう!
INDEX関数おさらい
INDEX関数は指定した行と列が交差するセルの値を取り出す関数
INDEX関数の基本数式
=INDEX(参照,行番号,列番号,領域番号)
上記の表で当てはめて102の氏名(J2)を求めるには、=INDEX(A2:G11,2,1)と関数を記入することでJ2は鈴木という値を取り出してきます。

MATCH関数おさらい
MATCH関数は指定されたデータが選択範囲内で何番目にあるのか教えてくれる関数
MATCH関数の基本数式
=MATCH(検査値,検査範囲,照合種類)
管理番号の102が指定した範囲内で何行目にあるか調べてみましょう!
=MATCH(I2,G2:G11,0)と関数を記入すると102の値は2行目にあると表示されます。

INDEX関数とMATCH関数で指定した値を抽出方法

今回はこの表をでI2~I7の値を基準にしてJ列・K列に必要な値を取り出していきます。
二つの関数をどのように組み合わせるのか?
=INDEX(参照,MATCH(検査値,検査範囲,照合種類))
このようにINDEX関数の中にMATCH関数を組み合わせて使います。
J2にINDEX関数を挿入していきましょう!
参照は名前が記入されている範囲を指定「$A$2:$A$11」
※値をオートフィルする時ように範囲には絶対参照しときます。


行番号はここでMATCH関数を挿入して自動で行の値を計算してもらう。
「MATCH(I2,$G$2:$G$11,0)」
MATCH関数の意味はI2の値はG2~G11の間で何行目にあるか表示してくれます。
列番号と領域番号は未記入です。
条件を記入するとこのようになります


オートフィルしてJ6までコピーしましょう。
J2には鈴木と表示され、管理番号を変えると自動的に氏名欄も更新されます。

K2も同様に関数をいれて年齢を求めて行くとこのような数式になります。


年齢45歳と表示されます。
隣の表を確認すると名前と年齢が一致していることが分かります。

INDEX関数とMATCH関数 まとめ
このようにINDEX関数とMATCH関数を組み合わせて使うことにより、VLOOKUO関数では取り出すことができない値も簡単に取り出せます。
他にも使い方はさまざまあり、今回は行番号にしかMATCH関数を使用しませんでした。
列番号にもMATCH関数を入れることで、複雑な条件の値を抽出が可能になります。
まずは一つずつ基礎的な使い方からマスターしていきましょう。