複数条件を満たすデータを別表から抽出するなら、 Excel2021/365ではFILTER関数の引数[含む]を使用し、 Excel2019/2016ではIF関数の引数[論理式]にAND/OR条件式を入力して抽出する数式を作成しましょう。
複数条件抽出
FILTER関数、AND/OR条件式、IF関数、ROW関数、INDEX関数、SMALL関数
例題1|
- データを求めるセル(A6セル)を選択し、「=FILTER(」と入力する。
- [配列]…抽出する表の「商品ID」~「数量」のセル範囲を選択する。
- [含む]…表の「伝票No」「種類」が伝票検索の「伝票No」「種類」である場合の条件式を入力する。
- [空の場合]…省略して、「Enter」キーで数式を確定する。
【数式】 =FILTER(B9:E12,(A9:A12=A3)*(D9:D12=B3))
FILTER関数、AND/OR条件式、IF関数、ROW関数、INDEX関数、SMALL関数
数式の解説
FILTER関数の引数[含む]には複数の条件式が指定できる。複数の条件式を指定するときは、それぞれの条件は[()]で囲み、AND条件は[*]、OR条件は[+]の演算子でそれぞれの条件式を結合して数式を作成する。「」の数式は、表の「伝票No」が「1000」で「種類」が「ローズマリー」の「商品ID」「単価」「種類」「数量」を抽出する。
Excelデータダウンロード
以下のリンクを右クリックし、Excelデータをダウンロードください
Excel-sample1.xlsx
例題2|
- F列のセルを選択し、「=IF(」と入力して、「伝票No」が「1000」であり、「種類」が「ローズマリー」である場合の条件式を入力し、条件を満たす場合に表示する値として「ROW(A1)」を入力、条件を満たさない場合に表示する空白[“”]を入力して、「Enter」キーで数式を確定する。
- 数式を必要な分だけ複写する。
- データを求めるセル(A6セル)を選択し、INDEX関数、SMALL関数、ROW関数を使って数式を作成して抽出する。
【数式】=INDEX($B$9:$E$12,SMALL($F$9:$F$12,ROW(A8)-7),1)
FILTER関数、AND/OR条件式、IF関数、ROW関数、INDEX関数、SMALL関数
数式の解説
「=IF((A9=$A$3)*(D9=$B$3),ROW(A1),“”)」の数式は、A9セルの「伝票No」がA3セルの「1000」であり、D9セルの「種類」がB3セルの「ローズマリー」である場合は行番号の「1」を返し、違う場合は空白[“”]を求める。
数式をコピーすることで、条件「1000」「ローズマリー」がある表の行にだけ表内の番目が付けられる。
F列に作成した表内の番目を使い、INDEX関数、SMALL関数、ROW関数を使って数式を作成して抽出することで、「伝票No」が「1000」で「種類」が「ローズマリー」の条件を満たすデータが抽出される。
Excelデータダウンロード
以下のリンクを右クリックし、Excelデータをダウンロードください
Excel-sample2.xlsx
コメント