「VLOOKUP」は使い勝手のいい関数だが、制約もある。データを探す方向が左から右に限られているので、検索するデータが表の左側にある必要があるのだ。「INDEX」と「MATCH」を使うと、検索したいデータが対象の表のどこにあっても探し出すことができる。
たとえば、1つのワークシートに製品リストが入っていて、列見出しは「製品番号」「利益」「製品名」「売上」だとしよう。それとは別のワークシートに製品名のリストがあり、各製品がどれだけ利益を上げているかを知りたい、とする。この場合、製品名を検索条件として用いて、利益を取得することになる。製品名は利益の右側にあるので、「VLOOKUP」は使えない。そこで「INDEX」と「MATCH」の出番となる。
次のような計算式になるだろう。
=INDEX(利益の列,MATCH(検索する値,製品名の列,0))
次のように考えれば仕組みを覚えやすいだろう。
=INDEX (値を取得したい列, MATCH (検索する値, 検索する列, “0” ))(最後に「0」を入れると完全一致検索になる。「-1」なら検索値以上の最小の値、「1」なら検索値以下の最大の値を探すことができる。)