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関数は、応用すると左端だけではなく他の列のものも出力できます。上記の例のように、列を変えるだけで「商品名」を出すことができるので、色々と触ってみることをおすすめします。
VLOOKUP関数の左側を参照する方法3:MATCH関数とOFFSET関数を組み合わせる
VLOOKUP関数の左側を参照する方法の3つ目は、MATCH関数とOFFSET関数を組み合わせることです。
MATCH関数はすでに2つ目の方法でご紹介しました。
今回は、「OFFSET関数」を詳しくご紹介してから、MATCH関数とOFFSET関数を組み合わせる方法をご紹介します。
STEP1.OFFSET関数を理解する
OFFSET関数は、「=OFFSET(参照,行数,列数,[高さ], [幅])」と使用します。INDEX関数と比べて、引数がひとつ多いので少し難易度が上がるので、丁寧に一つひとつの引数の意味を押さえていきましょう。
今回は、OFFSET関数を使用して商品Cを上にある表から抜き出してみましょう。
まずは、通常の関数を使用するために「=OFFSET()」と入力します。VLOOKUP関数と同じように、検索したいものがある範囲を指定します。
次は、Cを表から引き出すために、場所の指定を行います。まずは、「行数」から指定しましょう。指定した範囲(参照)の左上が「0」なので、Cは「2行目」にあることがわかります。
次に「列数」を指定します。指定した参照の左上が「0」なので、Cがある「1」を入力。
「=OFFSET(参照,行数,列数,[高さ], [幅])」の高さや幅は、今回は1セルだけを取り出すので、両方1です。
今回は使用しませんが、「=offset(C2:E6,2,1,1,2)」と入力すると、高さが1で幅が2のものが出力されます。「範囲を抜き出したい」ときに使用できるので、覚えておくと役に立つかもしれません。
STEP2.MATCH関数とOFFSET関数を組み合わせる
「=OFFSET(参照,行数,列数,[高さ], [幅])」の2つ目の引数「行数」を、MATCH関数で書き換えます。
「=offset(C2:E6,match(D10,E2:E6,0)-1,0,1,1)」と記入することで、価格から管理番号を導き出せます。
MATCH関数の行数から「-1」をしているのは、MATCH関数は指定した範囲の一番上を1としているのに対して、OFFSET関数は範囲の一番上を「0」としているからです。
VLOOKUP関数の左側を参照できるようになろう
- 検索したい列を移動させる簡単な方法もおすすめ
- MATCH関数とINDEX関数を理解し組み合わせる
- MATCH関数とOFFSET関数を組み合わせてみる
本記事では、VLOOKUP関数の左側を参照する方法をご紹介しました。新しい関数を使うのが難しい人は、検索したい列を移動させる方法をおすすめします。
「INDEX関数」「OFFSET関数」はどちらも難しさ的には甲乙つけがたく、使いやすいほうを使うといいでしょう。始めは慣れないと思うので、例を見ながら少しずつ練習してみてください。
本記事を参考にシートを整えたり関数を使って、VLOOKUP関数の左側を参照できるように整えてみてはいかがでしょうか。
【関連記事】
VLOOKUPで#N/Aのエラーが出たときの7つの原因と対処方法、表示させない方法を紹介
VLOOKUP関数を間違いなく入力しているはずなのに、「#N/A(ノー・アサイン)」のエラーが出てしまい困惑している人もいるのではないでしょうか。 本記事では、考えられるVLOOKUPでの...
VLOOKUP関数とは?役立つシーンと、基本の型を紹介
Excelやスプレッドシートを活用するときに覚えておきたい関数のひとつである「VLOOKUP関数」。なんとなく難しそうなイメージがある人も多いのではないでしょうか。 本記事では、VLOOK...
VLOOKUP関数の使い方とは?準備から基本の式の作り方を解説
VLOOKUP関数は他の基本的な関数と比べると複雑でわかりにくい関数です。「なんとなく難しいイメージがある」「使いこなせなさそうで避けている」という方も多いのではないでしょうか。 本記事で...
U-NOTEをフォローしておすすめ記事を購読しよう