ExcelでINDEXとMATCH関数を使って複数条件に基づくデータを検索するには、MATCH関数内で複数の条件を組み合わせることが一般的です。ここでは、MATCH関数を使ってARRAY式を作成し、それをINDEX関数に渡す方法を説明します。
例えば、A列に「名前」、B列に「年齢」、C列に「性別」が記載されているとします。ここで、特定の名前と年齢に一致する性別を取得したい場合は以下のようにします。
=INDEX(C:C, MATCH(1, (A:A="特定の名前")*(B:B=特定の年齢), 0))
この式では、次のことを行っています:
(A:A="特定の名前")
と (B:B=特定の年齢)
は、それぞれのセルが指定の条件と一致するかどうかをテストする配列を返します。ここで、"特定の名前"と"特定の年齢"は実際の検索条件に置き換えてください。MATCH(1, ..., 0)
は、この配列の中で1の値(両条件を満たす行)を見つけ出します。INDEX(C:C, ...)
は、MATCHから得られた行番号に基づいて、C列から値を取得します。注意点として、この配列式を正しく動作させるには、配列式として入力する必要があります。Excel 365やExcel 2019の一部バージョンでは、式を入力した後に Enter
ではなく Ctrl+Shift+Enter
を押して配列式として入力してください。Excelの新しいバージョンでは、自動的に配列として処理されることがあります。