Microsoft Excel(エクセル)のVLOOKUP関数は、表から値を抽出することができる代表的な関数です。
表を縦方向に検索して検索値を抽出することが出来ますが、検索値が一つだけだと抽出データが重複してしまう場合がありませんか?
そんな時は、VLOOKUP関数の検索条件を複数設定すると、検索したい値を正確に見つけることができます。
この記事では、VLOOKUP関数の『複数条件』の設定方法を解説します。
また、最後の見出しでは、VLOOKUP関数を使わず、『INDEX関数とMATCH関数を使った複数条件の検索方法』も紹介します。VLOOKUP関数の利用がどうしても苦手だという方は、こちらも参考にしてみて下さい。
VLOOKUP関数とは(おさらい)
まずはエクセルのVLOOKUP関数の使い方をおさらいします。
VLOOKUP関数(ブイルックアップ)は、
指定した検索条件に『当てはまる値』を指定した検索範囲から調べて、指定した位置から抽出することが出来る
関数です。
もう少しかみ砕いて、具体的な例で説明すると、
商品番号が『25』の商品を、指定した商品リスト表から調べて、表の左から3列目の『商品名』を抽出することが出来る
関数です。
この説明でも分かりづらい方は、この後に紹介するVLOOKUP関数の使い方を見れば、理解出来るようになると思います。いったん『表から条件に合った値を抽出することが出来るんだな』と、思っていただいて結構です。
VLOOKUP関数の構文は下のとおりです。「検索値」「検索範囲」「列番号」「検索方法」の4つの引数を指定する必要があります。
=VLOOKUP(検索値、検索範囲、列番号、[検索方法])
下の商品リスト表を例に、VLOOKUP関数で具体的にできることを説明します。
商品リスト表には、各列ごとに[商品番号][商品カテゴリ][商品名][値段]がまとめられています。
枠外のセルH3(赤色)にVLOOKUP関数を用いることで、商品番号”35”(青色)の商品名をB3~E10の検索範囲(緑色)から商品名「照明器具」を抽出することが出来ます。
この表は説明用に小さくしているので、目視でも商品番号”35”の商品名を見つけることは可能です。
しかし、スクロールしないと見れないような膨大なデータの中から検索値を抽出する必要がある時はVLOOKUP関数が大活躍します。
VLOOKUP関数の基礎から復習したい方は、以下の記事でさらに詳しく紹介していますので、合わせて参考にしてください。
👇VLOOKUP関数の復習はこちらの記事から。
VLOOKUP関数の使い方(おさらい)
続いて、VLOOKUP関数の使い方をおさらいを兼ねて手順を追って紹介します。
使い方は十分熟知している方は次の見出しに読み進めてください。
手順1.検索値を入力
検索範囲から検索したい条件(検索値)をセルG3に入力します。ここでは「商品番号”35”の商品名を抽出する」ために、引数「検索値」で指定するために「35」と入力します。
手順2. VLOOKUP関数を挿入するセルを選択
VLOOKUP関数を挿入するセルH3をクリックします。つまり、抽出結果を表示したいセルのことです。
手順3.「関数の挿入」ボタンからVLOOKUP関数を検索
「数式」タブの「関数の挿入」ボタンをクリックします。「関数の挿入」ダイアログボックスが表示されるので、VLOOKUP関数を検索し、「OK」ボタンをクリックします。
手順4.VLOOKUP関数の第1引数「検索値」を設定
「関数の引数」画面が表示されます。まず、VLOOKUP関数の第1引数「検索値」を、手順1で入力したG3セルを指定します。
手順5.VLOOKUP関数の第2引数「検索範囲」を設定
続いて、VLOOKUP関数の第2引数「検索範囲」を指定します。表全体から値を抽出したいので、検索範囲はB3 セルからE10セルまでを選択します。
手順6.VLOOKUP関数の第3引数「列番号」を設定
続いて、VLOOKUP関数の第3引数「列番号」を数字で入力します。抽出したい商品名は、「商品番号」列から数えて左から3列目にあるので、「3」と入力します。
手順7.VLOOKUP関数の第4引数「検索方法」を設定
最後に、引数「検索方法」は、完全一致を条件に検索するため、「FALSE」と入力してください。すべての引数を設定し終えたら「OK」を押します。
手順8.VLOOKUP関数の抽出値を確認
そうすると、VLOOKUP関数の結果がH3セルに表示されます。検索範囲の中から商品番号”35”の左から3列目の値である”照明器具”を抽出することができました。
【補足説明】VLOOKUP関数を作成する方法について
手順3~7では、【関数の挿入】ボタンを使用して関数の引数を一つずつ指定していきました。しかし、関数は、数式バーやセルに直接入力することが出来ます。
関数に慣れるためにも、セル内で関数を作成して、「=VLOOKUP(G3,B3:E10,3,FALSE)」という数式を作成した方が時短に繋がります。
VLOOKUP関数で複数条件を指定する方法
それでは、本記事の本題である、VLOOKUP関数を複数の条件で利用する方法を紹介します。
まず、上の図を見て下さい。
「B店のブラシ」の値段をVLOOKUP関数で検索したくても、B列には”「B店」のセルが3つあり、「ブラシ」のセルも3つあり、対応に困ります。
こんな時は、表自体を少し加工し、VLOOKUP関数の数式を編集することで、店舗名と商品名の2つの条件で値段を抽出することができます。
それでは下の見出しで解説します。
複数の条件に対応するために使う2つのテクニック
それでは、さきほどの表を使って、VLOOKUP関数で「B店のブラシ」の値段を抽出する方法を解説します。
結論から先に言ってしまうと、下の2つのテクニックを使うだけでVLOOKUP関数を複数条件で利用出来ます。
1.表にそれぞれの条件を結合したVLOOKUP関数用のキー列を挿入する
2.VLOOKUP関数の1つ目の引数「検索値」に”&”を利用する
テクニック1.表にキー列を追加
まず、1つ目のテクニックである、表にそれぞれの条件を結合した「VLOOKUP関数用のキー列を挿入」について説明します。
「キー列」とは、関数を利用出来るようにするために鍵(キー)となる新規列を表に追加することです。
VLOOKUP関数で「B店」で検索しても「ブラシ」で検索してもダメなので、下の図のように、「B店ブラシ」という新しい検索用の文字列を作成します。
テクニック2.VLOOKUP関数に「&」を利用
続いて2つ目のテクニック、「VLOOKUP関数の1つ目の引数「検索値」に”&”を利用」について説明します。
VLOOKUP関数の第1引数「検索値」は、下の図のように、「&」演算子を使って条件をつなぎ合わせる(結合)ことが出来ます。
=VLOOKUP(G4&H4,$D$4:$E$11,2,FALSE)
こうすることで、表内に新規に追加した「キー列」の中から、引数「検索値」に設定した検索条件を見つけることが出来るようになります。
次の見出しでは、この2つのテクニックを実際に活用して、VLOOKUP関数を複数の条件で利用する方法を解説します。
複数条件(2つ)でVLOOKUP関数を利用する方法
それでは、実際に2つのテクニックを使って、「B店のブラシ」の値段をVLOOKUP関数で見つける手順を紹介します。
手順1.キー列を追加
「商品名」の右側に新規に1列を追加します。次に、「店舗」と「商品名」の文字を「&」演算子を使って結合し、検索用のキーを作成します。
=B4&C4
手順2.キー列を完成
手順1で作成したキーを、下のセルにもコピペして、「キー」列を完成させます。
手順3.VLOOKUP関数を挿入
VLOOKUP関数をI4セルに挿入します。1つの目の引数「検索値」を、”G4&H4”というように、店舗名のセルG4と商品名のセルH4を「&」演算子で結合します。残りの引数の設定方法は、下の図のように、通常のVLOOKUP関数の利用と同じです。
=VLOOKUP(G4&H4,$D$4:$E$11,2,FALSE)
その結果、「B店のブラシ」の値段である「600」円を抽出することが出来ました。
このように”&”を用いて表内にキー列を追加し、さらにVLOOKUP関数内の検索値も”&”を利用することで、複数条件の設定が可能です。
「&」演算子を2つではなく、3つ用いることで、3つの複数条件でVLOOKUP関数を利用することも可能です。
複数条件(3つ)でVLOOKUP関数を利用する方法
今度は、3つの複数条件でVLOOKUP関数を使う事例を紹介します。
下の表を使って、「B店のブラシの一般価格」の値段をVLOOKUP関数で検索します。
手順1.キー列を追加
「商品名」の右側に新規に1列を追加します。「店舗」と「商品名」と「会員/非会員」を「&」演算子を使って結合し、検索用のキーを作成します。下のセルにも全てコピーして「キー列」を完成させます。
=B4&C4&D4
手順2.VLOOKUP関数を挿入
VLOOKUP関数をK4セルに挿入します。1つの目の引数「検索値」を、「H4&I4&J4」というように、店舗名のセルH4と商品名のセルI4と会員/非会員のセルJ4を「&」を使って文字を結合します。残りの引数の設定方法は、下の図のように、通常のVLOOKUP関数の利用と同じ方法です。
=VLOOKUP( H4&I4&J4,E3:F11,2,FALSE)
その結果、「B店のブラシの一般価格」の値段500円を抽出することが出来ました。
複数条件(4つ)でVLOOKUP関数を利用する方法
もちろん、4つ以上の複数条件でVLOOKUP関数を使うこともできます。
繰り返しになりますが、ポイントは「&」演算子で文字を結合してキー列を設定することと、VLOOKUP関数の第1引数にも「&」演算子で条件を結合することです。
=VLOOKUP( I4&J4&K4&L4,F3:G11,2,FALSE)
HLOOKUP関数やXLOOKUP関数でも複数条件は可能
VLOOKUP関数以外にも、横方向に検索値を見つけるHLOOKUP関数や、VLOOKUP関数の後継関数であるXLOOKUP関数でも、下の表のように同様の手順で複数条件の指定が可能です。
VLOOKUP関数と同様に、表の中に「キー列」を追加し、1つ目の引数「検索値」に”&”を利用するだけです。
下の記事でHLOOKUP関数の複数条件の使い方を詳しく紹介していますので、ぜひ参考にしてみてください。
XLOOKUP関数の複数条件の使い方は、以下の記事で詳しく紹介しています。
INDEX関数とMATCH関数を使うと、「キー列」が不要
VLOOKUP関数で複数条件を指定する場合、「キー列」を追加するため表の見栄えが悪くなることが気になる人もいるのではないでしょうか。
そんな時は、VLOOKUP関数を利用せず、INDEX関数とMATCH関数を組み合わせて利用することで、表の中から任意の値を抽出することが可能です。
INDEX関数とは
INDEX関数(インデックス)は、指定された行と列が交差する位置にあるセルの値を抽出する関数です。VLOOKUP関数と同じく、表から抽出することが出来るので、この関数をVLOOKUP関数の代わりに利用します。
INDEX関数の構文は下のとおりです。
=INDEX(配列,行番号,[列番号])
配列は検索範囲のことで、行番号と列番号は数値の入力されたセルを指定するか、直接関数の中に数値を指定します。
実施に下の商品リスト表でINDEX関数を使ってみます。
F11セルに下のINDEX関数が挿入されています。表(B4:D11)の中から、5行目(F6セル)の3列目(G6セル)の値(3,500円)を抽出することが出来ています。
=INDEX(B4:D11,F6,G6)
MATCH関数とは
MATCH 関数(マッチ)は、検索範囲の中から検索値を検索し、その範囲内での検索値の相対的な位置を返します。
=MATCH(検索値, 検索範囲, [照合の型])
検索値: 検索範囲の中で照合する値を指定します。
検索範囲: 検索するセルの範囲を指定します。
照合の型 : ”-1”、”0”、”1 ”の数値のいずれかを指定しますが、”1 ”の場合は省略可能です。今回は、「検索値に一致する値のみが検索の対象」とする”0”を利用します。
実際に、下の図でMATCH関数の使用例を説明します。
上の図では、B5セルに「=MATCH($C$2,B2:E2,0)」とMATCH関数を挿入しています。
検索値のC2セル(商品カテゴリ)は、検索範囲のB2:E2の左から2番目にあるので、関数の結果は”2”と表示されます。
INDEX関数とMATCH関数を組み合わる手順
それでは、下の商品リストを例に、「B店のブラシ」の値段を抽出するためにINDEX関数とMATCH関数を使って、複数条件で検索する方法を手順に沿って解説します。
INDEX関数が『VLOOKUP関数の代わりに使う関数』で、『MATCH関数が検索範囲から抽出する位置を指定する役割』を果たします。
手順1.表の枠外に検索条件を書き出す
表の枠外に複数の条件を書き出します。今回は、条件の1つ目が店舗名が“B店”、条件の2つ目のが商品名が“ブラシ”となります。
手順2.INDEX関数を挿入する
検索値を抽出したいセルに、INDEX関数を挿入し、一つ目の引数「配列」を指定します。「配列」は表全体のことを指しますので、列項目を除くB4:D11を指定します。
=INDEX(B4:D11,
手順3.INDEX関数の中にMACH関数を挿入する
INDEX関数の2つ目の引数「行番号」を指定するために、MATCH関数を挿入します。
MATCH関数の1つ目の引数「検索値」は手順1で作成した複数条件のセルを指定します。MATCH関数の2つ目の引数「検索範囲」は、B列の範囲(B4:B11)とC列の範囲(C4:C11)を”&”でつないで指定します。3つ目の引数「検索の型」は”0”を指定してください。
=INDEX(B4:D11,MATCH(F4&G4,B4:B11&C4:C11,0)
手順4.INDEX関数の3つ目の引数「列番号」を指定
INDEX関数の3つ目の引数「列番号」を指定します。値段は表の3列目に存在するため、”3”と指定します。
これで関数は完成ですが、「Enter」キーは押さず、次の手順5を操作してください。Office365のバージョンを利用している方は、「Enter」キーを押しても大丈夫です。
=INDEX(B4:D11,MATCH(F4&G4,B4:B11&C4:C11,0),3)
手順5.「Ctrl」キー+「Shift」+「Enter」キーで確定
関数を確定させるため、「Ctrl」キー+「Shift」を押しながら「Enter」キーを押してください。
下の図のように“B店”の“ブラシ”の値段”600円”が抽出することが出来ました。また、数式バーを見た時に、{ }で関数全体が囲まれていれば関数が正常に完成しています。
VLOOKUP関数の複数条件は「キー列」の追加がポイント
今回はVLOOKUP関数の複数条件を設定方法をご紹介しました。表に「キー列」の追加し、引数に”&”を用いるだけの方法なので、想像より簡単だったと思います。誰でも利用出来ますので、ぜひこの機会にVLOOKUP関数をさらにマスターしましょう!