アイキャッチ_ExcelエクセルのVLOOKUP関数を複数条件(複数の検索値)で検索する方法

VLOOKUP関数で、指定した条件に一致するデータが2つ以上ある(重複データがある)場合はどうしたらいいの・・・?

データ処理で度々こういうシチュエーションに遭遇すると思います…。検索値に重複があるとデータ処理上で先にヒットしたデータを取り出してきちゃうので正しくデータが取り出せないことがあります。

こういうとき、もう一つ条件をプラスすることでデータの区別をつけることができますが、VLOOKUP関数は検索値として設定できる条件は1つしか指定することができません。

VLOOKUP関数は

表形式のデータにおいて指定した1つの検索値を条件として一致するデータ(と同行のデータ)を取り出す関数

公式:=VLOOKUP(検索値, 範囲, 列番号, 検索方法 )
VLOOKUP関数のイメージ

ですが、解決方法があります。

少しだけ工夫すればVLOOKUP関数でも2つ以上の複数条件(複数の検索値)に一致するデータを取り出すことができるんですよ!

今日は、その「VLOOKUP関数を複数条件で検索する」方法を紹介していきたいと思います。

VLOOKUP関数を複数条件(複数の検索値)で検索する方法

この方法の考え方

この方法の考え方としては、VLOOKUP関数で検索値(条件)を複数指定できないのなら、その複数の条件を統合して1つの検索値にしちゃえばいいじゃん!という考え方です。

例えば「文字列A」と「文字列B」に一致するデータを取り出したいなら「文字列A文字列B」という検索値を自分で新しく作ってそれを指定しちゃおうということです。

ではその手順を、今から例題を使って解説していきますよ!

VLOOKUP関数×複数条件のやり方手順

例題

例)生徒別のクラスと名前・点数が入力された表があります

そこから「Bクラスの佐藤さんの点数」を取り出したいのですが、佐藤さんがAクラスにもいるため名前だけでは一致条件としては足りません

ここで「【B】クラスの【佐藤】」という2条件を統合して1つの検索値にしてVLOOKUPをかけていきます
VLOOKUP関数を複数条件で検索する(説明のためのデータ例)

この例題を使って実際にやってみましょう~!

やり方手順を解説

まず2つの条件を統合して検索値をつくるところから始めましょう

クラス(B列)と名前(C列)の文字列データを統合してA列セルに入力

文字列データを1つに統合する場合は「&(半角アンド)」でセル番号をつなげればいいので、セルA3に「=B3&C3と入力する
B列とC列のデータをつなげて1つのデータに変換する

セルA3には、セルB3・セルC3の文字列が統合され「A佐藤」と表示されましたね
B列とC列のデータが1つのデータとなり表示された

このセルA3の数式をオートフィル機能(※)で下段までコピーしましょう
オートフィル機能で数式を下段までコピーする

セルA12をセル範囲A3:A8に対する検索値としたいので、セルA12にも同じように「=B12&C12と、クラスと名前をつなげる数式を入れましょう
取り出すデータ側も同じようにB列C列のデータを&でつないでひとつにする

今度はデータの取り出し場所(セルD12)に、セルA12を検索値として上表のD列から点数を取り出してくるようVLOOKUP関数を入力します

=VLOOKUP(A12,A3:D8,4,0)
セルA12を検索値としてVLOOKUP関数を入力する

セル12行目以下、13行目14行目・・・と数式をコピーしてデータ行数を増やしていきたい場合には、「=VLOOKUP(A12,$A$3:$D$8,4,0)」のように範囲指定を絶対参照にしましょう

これであとはセルB12・セルC13に取り出したいデータの条件を入力するだけです

セルB12に「B」
セルC13に「佐藤」と入力します
セルB12、セルC12に取り出したいデータのクラスを名前を入力する

上の表からBクラスの佐藤さんの点数「99」がきちんと表示されましたね
取り出したいデータの点数が表示された

これでVLOOKUP関数を使って2つの条件に一致するデータを取り出すことができました!

少し手間はかかりますが慣れてしまえば簡単な作業です。

またこの方法の良い点は、条件は2つに限らず、3つ4つといくつでも条件を増やすことができる点です。例えば3つ条件を指定したいなら、同じように3つのデータを統合して1つの検索値にすればOKです。

Excel初心者さんにおすすめ

この記事を見ている人におすすめ


以上、VLOOKUP関数を複数条件で検索する方法を紹介してきました。重複したデータがある場合には、ぜひこの方法を試してみてくださいね。