ExcelでVLOOKUP関数に複数条件を追加してデータを抽出する方法

Office系ソフトウェア

ExcelのVLOOKUP関数を使用してデータを検索する際に、1つの検索値ではなく2つ以上の条件を組み合わせて検索したい場合があります。本記事では、A2の値に加えてB2の値も条件に加えてデータを抽出する方法を解説します。

VLOOKUP関数の基本と制約

通常、VLOOKUP関数は1つの検索値しか扱えません。たとえば、以下の関数ではA2の値をキーとして検索しています。

=IFERROR(VLOOKUP(A2,EF!A:C,2,0),"")

しかし、このままではA2の値しか検索条件に含めることができません。B2の値も条件に追加するためには、別の方法を採用する必要があります。

複数条件で検索する方法

① INDEXとMATCHの組み合わせを使う

VLOOKUPは1つの条件しか扱えませんが、INDEXMATCHを組み合わせることで複数条件を満たすデータを検索できます。

次の関数を使用すると、A2とB2の両方に一致するデータを取得できます。

=IFERROR(INDEX(EF!C:C, MATCH(1, (EF!A:A=A2)*(EF!B:B=B2), 0)), "")

この関数の仕組み:

  • EF!A:A=A2 は、A列でA2に一致する行を探します。
  • EF!B:B=B2 は、B列でB2に一致する行を探します。
  • (EF!A:A=A2)*(EF!B:B=B2) は、両方の条件を満たす行を見つけます(AND条件)。
  • MATCH(1, …, 0) は、その条件を満たす最初の行番号を取得します。
  • INDEX(EF!C:C, …) は、その行のC列の値を返します。

② FILTER関数を使う(Excel 365/2021以降)

Excel 365またはExcel 2021を使用している場合は、FILTER関数を活用すると、より簡単に複数条件で検索できます。

=IFERROR(FILTER(EF!C:C, (EF!A:A=A2)*(EF!B:B=B2)), "")

この関数の仕組み:

  • FILTER関数は、指定された範囲(EF!C:C)の中で、条件に合致するデータを抽出します。
  • (EF!A:A=A2)*(EF!B:B=B2) は、A列とB列の両方で一致する行を探します。
  • 一致するデータがない場合、IFERRORで空欄(””)を返します。

まとめ

VLOOKUP関数では1つの検索値しか扱えませんが、INDEXMATCHの組み合わせや、FILTER関数を活用することで複数条件の検索が可能になります。

  • Excel 2019以前のバージョンを使用している場合:INDEXMATCHを使用する。
  • Excel 365やExcel 2021を使用している場合:FILTER関数を活用する。

これらの方法を使えば、A2とB2の両方に一致するデータを簡単に取得できます。

コメント

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