VLOOKUPの場合は「左から何列目」と求めたい値のある列を指定しますが、何列目とかではなく「この行がコレでこの列がコレで•••」と縦横2つの条件に該当する行列の交差するセルの値が欲しい時があります。
VLOOKUPで出来そうだけど出来ない、縦横2つの条件で検索できるのがINDEXとMATCH関数です。
INDEXとMATCH関数
INDEXとMATCH関数を組み合わせることで、行と列それぞれに条件を指定して値を検索することができます。使用頻度は少ないかもしれませんが、この関数でなければ集計できないデータが現れることがあると思います。
使用例
システムからエクスポートしたデータや取引先から貰ったデータなどを、構成の異なる別の「表」に反映させる時などに使用します。
例えば下図の表で「左の数量を右に反映したい」場合、左右で行と列の項目が逆に配置されている上に並び順も変わっているため、VLOOKUPでは求められそうにありません。
関数の作り方
=INDEX(C3:G7,MATCH(J2,B3:B7,0),MATCH(I3,C2:G2,0))
[J3]のセルにINDEX•MATCH関数を入力する場合のサンプルです。
INDEX関数は「探す範囲,上から何行目,左から何列目」という構成で、MATCH関数は「探す値,探す範囲,0」という構成になっています。
INDEX関数にある「上から何行目」の部分に「1つ目のMATCH」を当てはめて、「左から何列目」に「2つ目のMATCH」を当てはめている形です。
関数【完成】
=INDEX($C$3:$G$7,MATCH(J$2,$B$3:$B$7,0),MATCH($I3,$C$2:$G$2,0))
正しい箇所に「$」を追加することで、J3セルの関数をN7セルまでコピーして式がズレることなく使用することができます。