エクセルVLOOKUP関数で複数条件で値を検索する方法

エクセルVLOOKUP関数で値を検索するとき、検索値が重複していると、正しい値が返されません。エクセルVLOOKUP関数で複数条件で値を検索するには、どのようにしたらできるのでしょうか。方法は簡単です。2つの条件を結合させればいいだけです。重複しているデータがある場合は、複数条件で値を検索すると、正しい値を返すことができます。

 

 

VLOOKUP関数

エクセルVLOOKUP関数は、指定した範囲の左端の列で検索値を探し、指定した列番号と同じ行にある値を返します。

VLOOKUP関数の書式と引数

=VLOOKUP(検索値, 範囲, 列番号,[ 検索の型])

検索値 検策する値を指定します。
範囲 検索する範囲を指定します。その場合、検索する列を範囲の一番左にします。検索の型にTRUEを指定、または省略した場合は、正確な値を返すために範囲の左端の列を昇順で並び替えておく必要があります。
列番号 範囲の先頭列から数えた、列番号を指定します。指定した列番号の列の値が返されます。
検索の型 FALSEまたは”0”を指定すると、一致する値のみ返されます。一致する値が見つからない場合は、エラー値#N/A が返されます。TLUEまたは”1”を指定すると完全一致の値、または近似値が返されます。省略した場合もTRUEになります。完全一致の値が見つからないと、検索値未満の最大値が返されます。

 

 

VLOOKUP関数で複数条件で検索

検索値に重複がある場合VLOOKUP関数での検索はできません

エクセルVLOOKUP関数で値を検索するとき、検索値が重複していないか調べてみましょう。重複データはCOUNTIF関数で調べることができます。

B列の「氏名」を検索値として、C列の「契約料」に、右表の「合計金額」を表示させます。

 

同姓同名がいないか調べてみましょう。列を挿入して重複データを調べます。

 

D2に、式を入力しましょう。

D2 =COUNTIF($B$2:$B$10,B2)

D2の式は、重複データの数をカウントする式です。

D2の式をドラッグして、下にコピーしましょう。

D3、D9をみてみましょう。「2」となっています。同姓同名です。検索値が重複しているので、「氏名」では検索はできません。

検索値が重複している場合、複数の条件で検索します。

 

 

VLOOKUP関数で複数条件で検索

重複データがある場合、1つの検索値では検索できません。このような時に複数の条件で検索します。「企業№」と「氏名」の2つを条件として、検索してみましょう。

「企業№」と「氏名」を「&」(アンパサンド)でつなぎます。G列に「企業№」と「氏名」を結合する式を入力してみましょう。

 

G2に、式を入力します。

G2 =E2&F2

G2の式をドラッグして、下にコピーしましょう。

G列が完成しました。

次に、C2に式を入力しましょう。

 

C2 =VLOOKUP(A2&B2,$G$2:$J$10,4,FALSE)

C2の式は、「A2&B2」で「企業№」と「氏名」をつないでいます。検索値は「A2&B2」です。範囲「G2:J10」の左端、G列から検索値を探しています。

C2には「4,500」が返されます。

C2の式をドラッグして、下にコピーしましょう。

C列の「契約料」に、右表の「合計金額」が表示できました!

 

 

重複データはCOUNTIF関数で調べられます

COUNTIF関数

指定した範囲に含まれる、検索条件に一致するセルの個数を返します。

COUNTIF関数の書式と引数

COUNTIF(範囲,検索条件)

範囲 検索条件に一致するセルの個数を求める範囲を指定します。
検索条件 条件を、数値、式、または文字列で指定します。式、文字列で指定する場合は「”」で囲みます。

COUNTIF関数の使い方

数式 結果
B2=COUNTIF($A$2:$A$10,”りんご”)  A列には商品名が入力されています。「りんご」の商品名は範囲「A2:A10」に2つあります。数式の結果は「2」です。

 

VLOOKUP関数とIF関数

エクセルVLOOKUP関数では、検索値が重複している場合、複数条件で値を検索します。ここでは、VLOOKUP関数だけを使って値を抽出しましたが、VLOOKUP関数を他の関数と組み合わせると、色々な検索ができます。

よく使われるのが、IF関数との組み合わせです。VLOOKUP関数とIF関数との組み合わせて別シートを参照したり、複数の論理式で値を検索、抽出ができます。

こちらの記事もご覧ください。⇒エクセルIF関数とVLOOKUP関数で別シートを参照する方法