目次
VLOOKUP関数は、キー列(検索値)より左側の列は取得できない
VLOOKUP関数の左側を参照する方法1:検索したい列を移動させる
VLOOKUP関数では、通常、検索範囲の左側の値を取得できません。しかし、関数と関数を組み合わせ工夫することで、VLOOKUP関数の左側を参照することは可能です。
本記事では、VLOOKUP関数の左側を参照する方法を3つご紹介します。画像を使って丁寧に解説しているので、ぜひ参考にしてくださいね。
本記事の内容をざっくり説明
- 方法1:検索したい列を移動させる
- 方法2:INDEX関数とMATCH関数を組み合わせる
- 方法3:MATCH関数とOFFSET関数を組み合わせる
VLOOKUP関数は、キー列(検索値)より左側の列は取得できない
VLOOKUP関数で、検索範囲の左側の値を取得したいときもあるのではないでしょうか。
残念ながら、VLOOKUP関数の仕様によりそのままでは、検索範囲の左側の列は取得できません。上記の画像の例で言うと、「管理番号」を検索し「価格」を表示させることは可能です。しかし、「価格」を検索して左側の「管理番号」を表示させることは、VLOOKUP関数だけではできません。
本記事では、「価格」を検索して左側の「管理番号」を表示させる方法を詳しくご紹介します。EXCELやスプレッドシートなどで活用できるように、本質を理解して使ってみてはいかがでしょうか。
VLOOKUP関数の左側を参照する方法1:検索したい列を移動させる
左側の検索値から右側を参照できる「VLOOKUP関数」。VLOOKUP関数の左側を参照する方法の1つ目は、検索したい列を移動させることです。
最も簡単な方法なので、「VLOOKUP関数が苦手で組み合わせて使えない」「検索したい列を移動させても問題ない」という人におすすめの方法です。
検索したい列を移動させる方法1
検索したい列を移動させる方法は2つあります。まずは最も簡単な方法を紹介するので、Excelやスプレッドシートなどが苦手だという人はこの方法を試してみてくださいね。
移動したい列の最上部をクリックします。今回の場合、商品名が書かれた「E」をクリック。
Eをクリックしながら、行を動かしたい場所にスクロールします。
この方法では、同じ行に書かれた表以外のものまで移動してしまいます。表に書かれたものだけを移動させたい人は、以下で紹介する検索したい列を移動させる方法の2つ目を参考にしてください。
検索したい列を移動させる方法2
移動させたいセルを選択し、左クリックを行い「切り取り」を選択しましょう。MACの場合「command + X」、Windowsの場合「Ctrl+X」でも同じ動作ができます。
貼り付けたい場所を選択し、左クリックを行い「貼り付け」を選択。MACの場合「command + V」、Windowsの場合「Ctrl+V」でショートカットできます。
「切り取り」と「貼り付け」を併用すると、列の下に書かれたものに影響が及びません。
VLOOKUP関数の左側を参照する方法2:INDEX関数とMATCH関数を組み合わせる
VLOOKUP関数の左側を参照する方法の2つ目は、INDEX関数とMATCH関数を組み合わせることです。
「INDEX関数」「MATCH関数」がわからない人でも使用できるように、基礎から解説しているのでぜひ参考にしてくださいね。
STEP1.MATCH関数を理解する
MATCH関数は「=MATCH(検査値, 検査範囲, [照合の型])」と使用します。
MATCH関数を利用することで、検索値が「何行目にあるか」「何列目にあるか」を自動的に算出してくれます。
今回は、何行目にあるかを知りたいため「=match(C10,D2:D6,0)」と入力します。
MATCH関数の3つ目の引数「照合の型」は「0」を入力すると、完全一致の結果のみ表示されます。VLLOKUP関数の「FALSE」と同じ役割です。
「1」または省略をすることで、「TRUE」と同じような役割をしますが、今回は完全一致の「0」のみ使用します。
注意しておきたいのが、「検索範囲」。VLOOKUPと同様に表全体を選択するのではなく、行もしくは列のみを選択します。
STEP2.INDEX関数を理解する
INDEX関数は、「配列形式」「セル範囲形式」と呼ばれる2つの使い方があります。今回は「=INDEX(参照, 行番号, [列番号], [領域番号])」と使用するセル範囲形式のINDEX関数を用います。
「=INDEX(C2:E6,2,1)」と入力することで、「指定した範囲」の「2行目」「1列目」にある「2」が出力されます。
STEP3.MATCH関数とINDEX関数を組み合わせる
「INDEX関数」と「MATCH関数」をどう組み合わせたら、左側を参照できるのかと不思議に思っている人もいるのではないでしょうか。
「=index(C2:E6,match(D10,E2:E6,0),1)」と、INDEX関数の中にMATCH関数を入力します。
まず、MATCH関数で指定した価格が何行目にあるか出力します。管理番号は1列目なので、INDEX関数で、1列目かつMATCH関数で指定した価格の行を表示させると、左側を参照することが可能です。
INDEX関数は、応用すると左端だけではなく他の列のものも出力できます。上記の例のように、列を変えるだけで「商品名」を出すことができるので、色々と触ってみることをおすすめします。