エクセルLOOKUP関数で、複数の条件を指定して検索する方法を紹介しています。LOOKUP関数に複数の条件を指定するには、複数の検索条件を1つにまとめる必要があります。2つ以上の条件を&、またはCONCATENATE関数で結合して1つの文字列にし、この文字列で検索します。ここでは、&を使用して、エクセルLOOKUP関数、複数の条件を指定して検索する方法を説明していきましょう。
目次
LOOKUP関数で複数条件が必要となるのはどのような場合
LOOKUP関数で複数条件が必要になるのは、どのような場合でしょうか。単純に複数条件で検索する場合と、検査値が検索する範囲に2つ以上同じ値がある場合です。
LOOKUP関数は検索する範囲に検査する値が2つ以上あると、行の一番右または列の一番下にある検査値を拾って値を返します。返したい正確な値を条件1つでは返せません。このような時に複数条件が必要となってきます。
エクセルLOOKUP関数、複数条件で検索する前の準備
LOOKUP関数で複数条件で検索する場合は、その前に準備することがあります。
上の表のC列に、列を挿入して式を入れます。
A2とB2を&で結合して1つの文字列にします。
C2 =A2&B2
C2に文字列「10001E102」が入ります。
この式をセル範囲「C3:C5」にコピーします。表の通りになります。
上の表が完成すればLOOKUP関数、複数条件で検索する下準備ができました。
エクセルLOOKUP関数、ベクトル形式で複数条件で検索
ベクトル形式で検索してみましょう。
G2に「10025B005」の合計金額を返す式を入力します。
G2 =LOOKUP(F2,C2:C5,D2:D5)
F2を検査値として検査範囲に「C2:C5」を指定します。一致する値と同じ位置にある列の値を返します。
G2には「3,000」の値が返されます。
エクセルLOOKUP関数、配列形式で複数条件で検索
配列形式で検索してみましょう。
G2に「10025A001」の合計金額を返す式を入力します。
G2 =LOOKUP(F2,C2:D5)
F2を検査値として配列にC2:D5を指定します。一致する値と同じ位置にある最終列の値を返します。
G2には「5,000」の値が返されます。
こちらの記事もご覧ください。⇒エクセルLOOKUP関数で完全一致の値のみ検索する方法
こちらの記事もご覧ください。⇒エクセルLOOKUP関数が昇順で並び替えていない場合の対処法
LOOKUP関数、ベクトル形式
ベクトル形式LOOKUP関数は、1行または1列からなるセルの範囲で値を検索し、同じ位置の値を返します。正確な値を得るためには、検索範囲を昇順で並び替える必要があります。
検査値が見つからない場合は、検査範囲の中で検査値以下の最大値が返されます。検査範囲の最小値よりも検査値 が小さい場合は、エラー値#N/A が返されます。
ベクトル形式の書式と引数
LOOKUP (検査値,検査範囲, 対応範囲)
検査値 | 検索する値を指定します。 |
検査範囲 | 値を検索する範囲を1行または1列で指定します。 |
対応範囲 | 1行または1列でセルの範囲を指定します。範囲は検査範囲と同じサイズにします。 |
LOOKUP関数、配列形式
配列形式LOOKUP関数は、配列の先頭行または先頭列から指定した値を探し、配列の最終行または最終列の同じ位置にある値を返します。配列形式LOOKUP関数は、配列の先頭行または先頭列から値を探します。正確な値を得るためには、配列の先頭行または先頭列を昇順で並び替える必要があります。
配列形式の書式と引数
LOOKUP (検査値,配列)
検査値 | 検索する値を指定します。 |
配列 | 検査値を検査する範囲を、配列の先頭行または先頭列にします。正しい値を得るため、配列の先頭行または先頭列は昇順で並び替えておきます。 |
複数条件で検索方法は、エクセルLOOKUP関数以外では?
エクセル検索/行列関数でLOOKUP関数と似ている関数は、VLOOKUP関数、HLOOKUP関数があります。VLOOKUP関数はセルの範囲で1列目で値を検索し、指定した列番号の列にある値を返します。HLOOKUP関数はセルの範囲で1行目で値を検索し、指定した行番号の行にある値を返します。
VLOOKUP関数、HLOOKUP関数ともLOOKUP関数と同様、検索値には1つの条件しか指定できません。検索する範囲に検索する値が2つ以上あると、VLOOKUP関数は列番号で指定した列の一番上の値を拾って返し、HLOOKUP関数は行番号で指定した行の一番左の値を拾って返します。
VLOOKUP関数、HLOOKUP関数で複数の条件を指定して検索する場合には、LOOKUP関数と同様、複数の検索条件を1つにまとめる必要があります。2つ以上の条件を&またはCONCATENATE関数で結合し、結合した1つの文字列で検索する必要があります。書式に検査値または検索値のあるエクセル検索/行列関数は、1つの条件のみの使い方になっています。
こちらの記事もご覧ください。⇒エクセルLOOKUP関数がエラーになる原因と対処法!エラー回避