こんにちは、ちちくろです♪
前回ExcelのFILTER関数に関してお話ししたのですが・・このままだと使い辛いような・・。
それは・・抽出条件がひとつなこと・・フィルター機能は複数の条件が使えるのに・・・FILTER関数だと一つの条件だけというのは・・なんとも・・。
そこで、今回はFILTER関数で複数の抽出条件を使う方法をご紹介仕様かと・・。
目次
複数条件
複数の条件を使って・・条件に合うデータを取り出したい。
多くの方がそう思うかも・・。
例題のワークシートでいうと・・。
B社のテレビで・・更に100000円以下の50型テレビとか・・。
このように・・複数の条件でデータを絞り込むことが出来たら・・すごく業務が楽になりますよね♪
含む数式で複数の条件を指定
FILTER関数を使って複数条件で絞り込みするには・・含む部分の数式で複数の条件を設定することで可能になる・・。
具体的には・・以下のように・・。
条件1・・テレビ
条件2・・50型
と指定すれば・・50型のテレビの一覧が表示されることに・・。
FILTER関数で複数条件の指定方法
では・・複数の条件を指定するには・・含む部分の数式をどのようにすればよいのか・・異なる条件を、演算子を使って連結して数式を書き込む ・・。
条件同士をつなぐ演算子は・・。
AND(条件を両方満たす)で指定する場合は*で繋ぎたい場合は・・(条件1)*(条件2)という感じで・・演算子の*でつなぎ・・OR(条件をどちらか満たす)場合は+で繋ぐ場合は・・【条件1】+【条件2】という感じで演算子の+を使ってつなぐ必要が有ります♪
テンプレート作成
FILTER関数を使ったテンプレートを作成してみることに・・例題として・・家電の商品リストを作ってみることに・・。
- 商品番号 商品の色別番号
- 種類 テレビ・冷蔵庫・クリーナー
- メーカー A社・B社・C社
- 規格 商品の大きさ等
- 価格 商品の値段
これらの検索条件を使って・・B2~B5に指定した条件に合う商品を抽出するようにしたいそんなワークシートを作ってみようかと♪
検索する項目は・・種類・メーカー・規格・価格の4項目・・。
数式1
前回の続きなので・・すでにセル範囲に名前を付けている 状態・・。
A8に記入する数式は・・”=FILTER(商品一覧!A2:E46,(種類=B2)*(メーカー=B3)*(規格=B4)*(価格<=B5),”該当なし”)”というもの・・。
含む部分の数式を説明すると・・。
種類=B2・・セル範囲種類からB2に該当するものを抽出・・さらに・・メーカー・規格も同様の内容を・・。
価格は少し違う内容で・・。
価格を指定する場合・・通常は・・価格に設定スタ条件より低いものを選ぶことが多いかと・・。
そうなると・・記載は”価格<=B5″ということになります
動作確認
これでワークシートの動作を確認すると・・問題発生・・。
すべての条件がそろわないと抽出できないことに・・。
ひとつでも条件が設定されていないと・・“該当なし”になってしまいます・・。
これだと使いにくいかも。・・。
問題の解決策
このままだと使い辛いので・・。
何故なら・・抽出する項目を任意の数にしたいから・・ではその方法は・・。
条件の数式を変更することで可能に。
条件の式を考える
Excelの条件式で使える演算子は・・。
・> (大なり記号)より大きい
・< (小なり記号)より小さい
・>= (より大か等しい記号)以上
・<= (より小か等しい記号)以下
・<> (不等号)等しくない
この中で使えそうなのは・・<> (不等号)等しくない・・という感じかな・・。
ISBLANK関数
ISBLANK関数を使って条件を振り分ける・・。
ISBLANK関数を使い値が指定されていない場合の処理を考えることに・・具体的に言うと・・。
数式を・・”=FILTER(商品一覧!A2:E46,(種類=B2)*(メーカー=B3)*(規格=B4)*(価格<=B5),”該当なし”)”=FILTER(商品一覧!A2:E46,(IF(ISBLANK(B2),種類<>B2,種類=B2))*(IF(ISBLANK(B3),メーカー<>B3,メーカー=B3))*(IF(ISBLANK(B4),規格<>B4,規格=B4))*(IF(ISBLANK(B5),価格<>B5,価格<=B5)),”該当なし”) という風に・・。
長い数式なのですが・・簡単に説明すると・・条件の式を・・”IF(ISBLANK(参照セル),参照セルが空きの場合,参照セルが空きでない場合”という参照セルの数だけ作り・・それらを*でつなぎ合わせる・・。
こうすることで・・種類・メーカー・規格・価格のどれかを指定すると該当するデータが表示されることに♪
まとめ
IF関数とISBLANK関数を組み合わせて抽出条件を変えると便利・・。
条件の数式に<>を使うと空白以外を抽出できる・・それってすべてということになるので・・参照セルが空白の時の条件に設定すればOK
IF関数とISBLANK関数を使えば・・必要な項目のみを対象にできるということに・・。
このようにFILTER関数を使うと・・Excelを計算以外で使うのにとても便利に使うことが出来ます♪