- 公開日:
ExcelのVLOOKUP関数の逆をやる方法
この記事では、ExcelのVLOOKUP関数の逆をやる方法をご紹介します。
VLOOKUP関数は検索値が左端にする必要があるため、必然的に検索値に該当したセルと同じ行の右方向が検索対象になります。
ただし、レイアウトなどの変更ができない場合に通常とは逆(左方向)の検索する数式をご紹介します。
VLOOKUP関数で逆をやることはできる?
VLOOKUP関数の逆をやるとは、検索列から左方向にデータ検索をするということです。
VLOOKUP関数は範囲の左端が検索列になるので、検索値を縦に検索して同じ行の右側のデータを抽出します。
VLOOKUP関数の逆をやるとは、上記の画像のように2列目の「商品名」を検索列として検索列の左側にある「商品コード」の値を抽出することです。
ただし、VLOOKUP関数では検索値より左側の列を検索することはできないので、VLOOKUP関数の逆をやる場合は他の関数を使う必要があります。
ExcelのVLOOKUP関数の逆をやる方法
VLOOKUP関数の逆をやるには、XLOOKUP関数を使う方法とINDEX×MATCH関数を使う方法があります。
ただし、XLOOKUP関数は「Excel 2021」以降のバージョンと「Microsoft 365」のみで使える関数なので、対応していない場合は「INDEX×MATCH関数で検索列より左側の列を検索する方法」セクションを参考にしてください。
XLOOKUP関数を使って検査列より左側を検索する方法
B10セルに検索値(例:みかん)を入力します。
C10セルに「=XLOOKUP(B10,C3:C7,B3:B7)」を入力して、Enterを押します。
B10セルの値をC3セルからC7セルの範囲で検索して、B10セルの値に紐づく値をB3セルからB7セルの範囲から抽出します。
XLOOKUP関数は、特定の値を指定した範囲で縦方向または横方向にデータ検索してデータを抽出する関数です。
書式は「=XLOOKUP(検索値,検索範囲,戻り配列,[見つからない場合],[一致モード],[検索モード])」です。
XLOOKUP関数の使い方などの詳細は、以下の記事でご紹介しています。
ExcelのXLOOKUP関数の使い方|縦方向/横方向を両方検索する
C10セルに結果が表示されました。
XLOOKUP関数は、検査値を探す列が表のどこにあってもデータ検索をすることができます。引数が少ないのでXLOOKUP関数に対応しているバージョンの場合は、XLOOKUP関数を使うことをおすすめします。
INDEX×MATCH関数で検索列より左側の列を検索する方法
B10セルにMATCH関数の引数となる検査値(例:みかん)を入力します。
C10セルに「=INDEX(B3:B7,MATCH(B10,C3:C7,0))
」を入力して、Enterを押します。
上記の数式は、MATCH関数で取得したB10セルの値に完全一致するセルの行番号(例:5行目)とINDEX関数で取得した列番号(例:1列目)を元に「商品名」に紐づく「商品コード」の値を取得します。
今回は、INDEX関数の範囲を1列しか選択していないため、列番号は1になります。
INDEX関数は、指定した行数と列数が交差する位置に当てはあるセル番地の値を求めます。今回使用する書式は「=INDEX(配列,行番号,[列番号])」です。
INDEX関数の引数の説明や使い方の詳細は、以下の記事でご紹介しています。
ExcelのINDEX関数の使い方|行と列が交差する位置にあるセルを返す
MATCH関数は、指定した照合の型に当てはまる検査値が検査範囲の何番目にあるのかを相対的に求めます。書式は「=MATCH(検査値,検査範囲,[照合の型])」です。
MATCH関数の引数の説明や使い方の詳細は、以下の記事でご紹介しています。
ExcelのMATCH関数の使い方|検索値の範囲内での相対的な位置を返す
C10セルに結果が表示されました。
INDEX関数とMATCH関数の組み合わせは、検査値を探す列が表のどこにあってもセルの位置から相対的に結果を取得することができます。