VLOOKUP関数でキー列より左側を参照したい時の対処法

midSun31midSun31
IT・デジタル

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関数の使い方でした。

IT・デジタル
Howpon[ハウポン]

コメント