K-fix Learning & Playing

11 INDEX,MATCH関数


INDEX関数は、指定された行と列が交差する位置にあるセルまたはセルの参照を返す関数です。引数には配列形式と参照形式の2種類があります。
配列形式は、隣接した1つの範囲から行と列の位置を指定して値を返します。書式は以下の通りです。

配列とは連続する数値を表すので、連続したセル範囲と考えてください。行番号は指定した配列の上から何番目かを指定します。列番号は指定した配列の左から何番目かを指定しますが、配列が1列の場合は省略できます。

参照形式は、隣接しない複数の範囲から行と列の位置を指定して値を返します。書式は以下の通りです。

引数の参照には、離れている範囲を指定します。例えば、A2からE11、G2からK11に2つの範囲から検索したい時は、参照には「(A2:E11,G2:K11)」のようにカッコで囲んで指定します。そして、どちらの範囲から検索するかは領域番号で指定します。番号は参照で指定した順番で、A2からE11であれば「1」とします。
列番号と領域番号は省略できます。列番号は参照が1列であれば省略でき、「0」を指定すると列全体を返します。領域番号を省略した時は、参照の1番目の範囲が指定されます。

利用頻度の高いのは配列形式です。

MATCH関数は、指定した値が範囲内でどの位置にあるかを検索し、その位置(行番号または列番号)を返します。書式は以下になります。

「検索値」:検索する値またはセル参照を指定します。
「検索範囲」:検索を行うセルの範囲を指定します。
「照合の種類」:検索方法を1、0、-1の中から選択します。省略すると1が選択されます。
照合の種類によって、検索値と一致する方法が異なります。
「1または省略」:検索値以下の最大値を検索します。検索範囲は昇順に並べておく必要があります。
「0」:検索値と完全一致する値を検索します。検索範囲は並べ替える必要はありません。
「-1」:検索値以上の最小値を検索します。検索範囲は降順に並べておく必要があります。

MATCH関数は、単独で使うよりも、他の関数と組み合わせて使うことで、より便利になります。
INDEX関数の引数に行番号と列番号がありますが、この2つの引数にMATCH関数を使用すると、より柔軟な数式を作ることができます。

画像のような表がある場合、バナナの価格を返したい場合は、以下のような数式になります。
=INDEX(B2:C4,MATCH(1002,A2:A4,0),MATCH(C1,B1:C1,0))

INDEXの引数「行番号」のMATCH関数はA2からA4の範囲で1002は上から何番目なのか、引数「列番号」のMATCH関数はB1からC1の範囲で単価は左から何番目なのかと指定しています。
この行番号と列番号で交差しているセルの値を返します。