Excel(エクセル)関数逆引き MATCH関数+INDEX関数を使用して、表から値を自動的に検索しよう。

Excel関数といえばVLOOKUPの検索といって過言ではない。
しかし、MATCH関数+INDEX関数を使用すると、VLOOKUP関数ではできない幅広い検索方法が可能となり、さらに検索スピードも早い。
データベースの値を柔軟にすばやく取り出せる。

Excel関数でデータベースから、指定した値に関するデータを取り出したい。

Excelでは行ごとに関連するデータを入れているので、行の値のどれかを検索して、その行のどこかの値を検索すれば、関連する値を取り出せる。

VLOOKUP関数もあるが、MATCH関数+INDEX関数でも可能である。

テンプレートはこちら。ダウンロードしたい方はこちら


INDEX関数の使用方法からマスターする。



B12に「=INDEX($D$5:$G$9,2,2)」を入れている。

$D$5:$G$9は緑で囲んだ検索範囲。2は2行目、次の2は2列目で、D5:G9の範囲で2行目2列目のオレンジを取り出す。


次はMATCH関数をマスターする。



B15に「=MATCH(A15,$D$5:$G$9,0)を入れている。

A15は青で囲んだ「もも」。$E$5:$E$9は緑で囲んだ検索範囲。0は完全一致。「もも」が$E$5:$E$9の中にあれば、行数を返す。ももは3行目だから「3」を返す。


次は、INDEX関数とMATCH関数を結合する。



B4に「=INDEX($D$5:$G$9,MATCH(A4,$E$5$E$9,0),1)を入れている。

INDEX関数はで囲まれた$D$5:$G$9の中で行、列を指定して値を返す。
MATCH関数で検索値の行を割り出してINDEX関数の行指定の部分に入れ、後は、その行のどの列の値か指定する。

MATCH関数で$E$5:$E$9の紫で囲んだ検索範囲からで囲まれたA4の「りんご」が何行目にあるかを値として取り出す(りんごは1行目のため1となる)。
1列目の連番を今回検索したいので、最後の列指定のところは「1」として、INDEX指定範囲$D$5:$G$9の1列目を検索する。

そうして、B4で作った関数をB8までコピーするとキャベツに対応した連番5、など検索できる。




VLOOKUPより高性能なのは、検索値の左側を検索できることにある。
(VLOOKUPは検索値の左側を検索できない。)

また、MATCHで行の値が出てくるので、INDEX関数で行を指定するとき、MATCH関数で出力された値に1を足して、一つ下の行のものを検索とか柔軟な検索が可能となる。

検索スピードも速いのでVLOOKUPで手に終えないときは使ってみるのも手である。


忍者Admaxのテキスト広告で収入UP!

実践!ExcelデータベースTOP