GoogleスプレッドシートのINDEX関数とMATCH関数を組み合わせると、特定の行と列の値を直感的に抽出できます。今回はINDEX関数とMATCH関数、それぞれの使い方についても分かりやすく解説しているので、ぜひ参考にしてみてください。
INDEX関数とは?
INDEX関数は指定した参照から、行番号と列番号がクロスするセルの値を返します。
例えば INDEX(A2:B5,D2,E2) なら、返り値は B2 セルの値 200 です。
行と列は、参照する範囲内のそれぞれ左上から数えます。シートの A 列や 1 行目が 1 とは限らないので注意してください。
INDEX関数の構成要素:(参照, [行番号], [列番号])
行番号と列番号は、どちらも省略できます。
省略または 0 を指定した場合、返り値は参照する範囲内のすべての値です。例えば INDEX(A2:B5,,E2) なら、範囲の2列目からすべてのセルの値を返します。
MATCH関数の使い方
ほかの関数と組み合わせて活用されることが多いMATCH関数ですが、単体での機能もしっかり理解しておきましょう。検索の種類には以上・以下・完全一致の3つがあります。
MATCH関数とは?
MATCH関数は指定した範囲内から、検索キーと一致するセルの相対的な位置を返します。
例えば MATCH(D2,A1:A5,0) なら、範囲内の”ばなな”の位置 3 を返します。文字列の検索キーを数式内に直接指定する場合は、二重引用符が必要です。
※後ほど詳しく解説しますが、基本的に検索の種類には 0 を指定してください。
MATCH関数の構成要素:(検索キー, 範囲, [検索の種類])
列の位置を数える場合は、MATCH(D3,A1:B1,0) のように範囲を指定します。
検索方向に関する引数はないので、範囲に指定できるのは 1 次元配列のみです。1 より大きい高さと幅の範囲を指定すると、MATCH関数は #N/A!エラー を返します。
検索の種類とは?
検索の種類には、検索の方法を 1、0、-1 の数字で指定します。例えば MATCH(D2,B2:B5,1)なら、返り値は 210 以下の最も大きい値の位置 2 です。
- 1 または省略:昇順に並んでいる前提で、検索キー以下の最も大きい値の位置を返します。
- 0 :検索キーと、完全一致する値の位置を返します。
- -1 :降順に並んでいる前提で、検索キー以上の最も小さい値の位置を返します。
検索の種類は省略すると 1 と認識されるので、省略せずに 0 を指定するのが基本です。
INDEXとMATCHの組み合わせ方法
MATCH関数で取得したそれぞれの値の位置を、INDEX関数の行番号と列番号に指定します。
例えば INDEX(A1:B5,E2,E3) なら返り値は、ばななの価格(150)です。このようにMATCH関数が検索キーとして参照しているセルの値を更新するだけで、直感的に値を抽出できます。