【VLOOKUP関数】複数条件でデータを検索する【Excel】

VLOOKUP関数を応用して、複数条件でデータを検索する方法を紹介します。

早速やり方を確認したい人はこちらから。

ごちゃごちゃと文章を書いているけれど、図だけ見て真似したが手っ取り早いとおもうのでオススメ。
読み物として読みたい方は、ぜひ。。。

VLOOKUP関数について

VLOOKUP関数は、例えばID・氏名・性別・年齢…などように項目が複数あるデータセットがあった場合に、ある値に対応するデータを検索して抜き出す関数だ。

具体的には、例えば5人に以下のようなIDが割り当てられたとしよう。
ここで、VLOOKUP関数を使えば、IDからそのIDを持つ人の氏名を瞬時に抜き出すことができる。

通常、VLOOKUP関数で検索値(条件)として指定できるのは1条件のみである。

しかし、実際には複数条件で検索したい場合もある例えば、下の図のように検索値が一つだけだとデータが重複してしまうので複数条件で検索したい、といった場合。
(「鈴木さんの12歳時の身長」を取得するためには、「鈴木」かつ「12歳」の身長データを抜き出さないといけない)

VLOOKUPでは、上から該当するデータを探していくので、上の例では「鈴木」だけで検索すると6歳の時の身長120cmが抜き出されてしまうし、年齢「12」歳だけで検索すると星田さんの12歳の時の身長150cmが抜き出されてしまう。やはり「鈴木」かつ「12」歳で検索する必要がある

そこで、以降ではVLOOKUP関数を使って複数条件で検索する方法を紹介する。

VLOOKUP関数を使って複数条件で検索する方法

VLOOKUP関数による複数条件検索は、次の2ステップで行う。

  1. 検索値の下準備(複合データ作成)
  2. VLOOKUPによる検索

検索値の下準備

「VLOOKUP関数を使って複数条件で検索する」と言ったが、正確にはVLOOKUP関数は検索値を1つしか指定できないので、複数の検索値を組み合わせてひとつの検索値にまとめてしまってからVLOOKUP関数を使おう、という発想だ。

そこで、まず検索値の下準備が必要になる。

例えば、先ほども例に挙げたような「氏名・年齢・身長」のデータがあったとしよう。

ここから、氏名と年齢の両方が一致する身長のデータをH2に抜き出したい場合を考える。
それにはまず、氏名と年齢の複合データを作成する。

作り方は簡単。(セル番号は図の場合。適宜変更すればOK)

  1. 身長の列(D列)の左に新たに列を挿入。
  2. 新たにできた列のセル(D2)に、「=B2(氏名のセル)&C2(年齢のセル)」を打ち込む。
    →D2に氏名+年齢の複合データが出来る。(文字列の結合についてはこちらを参照)
  3. D2をデータ分だけD列にコピーして、複合データの列を作る。
1.身長の列の左に、新たに列を挿入。
2.新たに挿入した列のセルに、氏名と年齢を結合した複合データを作る。
3.D列に複合データをコピー

これで、検索値の下準備は完了。つづいてVLOOKUPで検索を行う。

VLOOKUP関数で検索する

例えば、図のように検索条件(G列:氏名とH列:年齢)が用意された表があり、I列に合致する身長を表示させたいとしよう。

(今回は、鈴木さんの12歳の時の身長を表示したい!)

この場合、I2に「=VLOOKUP(G2&H2,D2:E7,2,FALSE)」と入れて、Enter。
すると、I2に鈴木さんの12歳の時の身長を表示することが出来る。

(※VLOOKUPの基本的な使い方についてはこちらを参照)

「=VLOOKUP(G2&H2,D2:E7,2,FALSE)」と記入
Enterを押すと、「鈴木」かつ「12歳」に対応する身長データが得られる。

ここで、検索値を「F2&G2」とすることで、F2とG2の文字列を結合したもの、つまりD列に作った複合データと同様の形のものが検索値として指定され、D列に該当するデータがあればそれに対応する慎重データ(E列)をI列に返してくれるというわけだ。

以上の要領で、VLOOKUP関数を利用して複数条件で検索できるようになる。
今回は検索条件が2つだったが、検索条件が3つ以上の場合でも同様の手順で可能だ。

コメント

タイトルとURLをコピーしました