INDEX関数とMATCH関数でデータを抽出する

INDEX関数とMATCH関数を使って、表のデータを抽出する方法を解説します。

INDEX関数は、「表の中で行と列の番号を使って特定の値を取り出す」関数です。以下のように書きます。
=INDEX(表の範囲, 行の番号, 列の番号)

MATCH関数は「特定の値が、行又は列の範囲の中で、どこにあるか位置を特定する」関数です。式は以下の通りです。
=MATCH(検索値、検索範囲、データ照会方法)

両者を組み合わせることで、表の中から検索値に合致する特定のデータをひとつを取り出す処理を書くことができます。
VLOOKUP関数に似た機能になります。

こちらの商品の表を例に,処理を書きましょう。
商品を元に、メーカを抽出しましょう。

まずは、INDEX関数を書いて、表の範囲を指定します。
=INDEX(A1:C11
INDEX関数で表の範囲を指定

次に、行番号を入れますが、一旦ここは空欄のまま置いておいて、先に列番号を入れましょう。
メーカーはA列なので、1と入れます。
=INDEX(A1:C11, ,1)
列番号

最後に、MATCH関数を使って、D2セルに入力されている商品の行番号を取得しましょう。
=index(A1:C11,MATCH(D2,B1:B11,0),1)
MATCH関数を使って商品の行番号を取得

こちらでソファのメーカーA社を抽出することができました。

VLOOOK関数と異なるのは、こちらのように、検索値の列(今回は商品)が抽出したいデータの列(今回はメーカー)の右側にあったとしても処理が作動する点です。VLOOKUP関数は、検索地の列は必ず抽出したいデータの列の左側でなければなりません。

スプレッドシートから関数をご覧になる場合はこちらから

なお、Excelをお使いの場合は、同じような機能を持つ関数としてXLOOKUP関数があります。(スプレッドシートには存在しません)