期間や年代など完全一致でない複数の検索値で該当データを抽出する場合は、1つの文字列にできない。このような場合はXLOOKUP/LOOKUP関数の引数[検索範囲]に条件式を使って抽出しましょう。
複数条件で検索抽出
例題1|複数条件で検索抽出する
- 「料金」を求めるセル(B4セル)を選択し、「=XLOOKUP(」と入力する。
- [検索値]…「1」と入力する。
- [検索範囲]…検索値の「期間」と「区分」が含まれるセル範囲を求める数式「(A7:A12<=B2)*(B7:B12=B3)」を入力する。
- [戻り範囲]…抽出する「料金」のセル範囲を選択する。
- [見つからない場合]…[””](空白)を入力する。
- [一致モード]…「-1」と入力する。
- [検索モード]…省略して、「Enter」キーで数式を確定する。
【数式】=XLOOKUP(1,(A7:A12<=B2)*(B7:B12=B3),C7:C12,””,,-1)
数式の解説
「(A7:A12<=B2)*(B7:B12=B3)」の数式は、「(A7:A12<=B2)」「(B7:B12=B3)」の2つの条件式を満たすと「1*1」で「1」を返し、満たさないと「0*0」「1*0」「0*1」などになるため「0」が返される。XLOOKUP関数の引数[検索範囲]に組み合わせて、「=XLOOKUP(1,(A7:A12<=B2)*(B7:B12=B3),C7:C12,“”,,-1)」の数式を作成すると、「1」に対応する「料金」が抽出される。結果、「期間」と「区分」に該当する「料金」が抽出される。
Excelデータダウンロード
以下のリンクを右クリックし、Excelデータをダウンロードください
Excel-sample1.xlsx
例題2|複数条件で検索抽出する
「料金」を求めるセル(B4セル)を選択し、「=LOOKUP(」と入力する。
[検査値]…「1」と入力する。
[検査範囲]…検索値の「期間」と「区分」が含まれるセル範囲を求める数式「0/(A7:A12<=B2)/(B7:B12=B3)」を入力する。
[対応範囲]…「料金」のセル範囲を選択したら、「Enter」キーで数式を確定する。
【数式】=LOOKUP(1,0/(A7:A12<=B2)/(B7:B12=B3),C7:C12)
数式の解説
「0/(A7:A12<=B2)/(B7:B12=B3)」の数式は、「(A7:A12<=B2)」「(B7:B12=B3)」の2つの条件式を満たすと「0/1/1」で「0」を返し、満たさないと「0/0/0」「0/1/0」「0/0/0」などになるため「#DIV/0!」が返される。LOOKUP関数の引数[検査値]に「1」を指定して「=LOOKUP(1,0/(A7:A12<=B2)/(B7:B12=B3),C7:C12)」の数式を作成すると、「1」に対応する「料金」が抽出される。結果、「期間」と「区分」に該当する「料金」が抽出される。
Excelデータダウンロード
以下のリンクを右クリックし、Excelデータをダウンロードください
Excel-sample2.xlsx
コメント