VLOOKUP関数はキー列から右側の列のセル値を取得する使い方が一般的ですが、左側の列の範囲のセル値を取得する方法はあるのでしょうか。
この記事では、Excelやスプレッドシートでキー列より左側を参照したい時の方法をご紹介します。例ではGoogleスプレッドシートを使用していますがExcelでも操作方法は同様です。
この記事の内容
VLOOKUP関数はキー列より左側を参照できない
例えば下のシートでは検索したい「商品番号」が2列目、取得したい「入荷予定」が1列目にあります。
取得列がキー列よりも左に存在するためVLOOKUP関数では値を取得することができません。
MATCH関数とINDEX関数で左側の範囲を参照する
今回はMATCH関数とINDEX関数を組み合わせて左側の列を取得できるようにします。
MATCH関数
MATCH関数とは、参照範囲を検索して検査値の相対的な位置(上から何行目に存在するか)を返します。構文は次の通りです。
=MATCH(検査値, 検査範囲, 照合の型)
INDEX関数
INDEX関数は、参照範囲から指定された行・列の値を返します。構文は以下の通りです。
=INDEX(参照範囲, 列(上から何番目か), 列(左から何番目か))
MATCH関数とINDEX関数を組み合わせる
今回の例について実際にMATCH関数とINDEX関数を組み合わせてみます。
B3セルの値(=A007)をC6~C15セルから検索したいので、次のようにMATCH関数を設定します。絶対参照をするので照合の型は「0」にします。
=MATCH(B3,C6:C15,0)
B3セルの値(=A007)は上から7番目に存在するのでこの関数は「7」を返します。
INDEX関数を先程のMATCH関数と組み合わせて数式を入力します。参照範囲は商品一覧表「B6~C15」を、行にはMATCH関数の結果(=7)を、「入荷予定」が左端にあるので列には「1」を設定します。
=INDEX(B6:C15, MATCH(B3,C6:C15,0), 1)
例では、上記の式をC3セルに設定すると、キー「商品番号」より左側の列「入荷予定」が取得できるようになりました。
以上、キー列より左側を参照したい場合のExcel関数の使い方でした。
コメント