文字を含む行を抽出
=FILTER(A2:D8, ISNUMBER(SEARCH("東京", C2:C8)), "該当なし")C列に「東京」を含む行だけを返します。SEARCHは見つかった位置を数値で返し、見つからない場合はエラーになります。
条件に一致する行だけ抽出します。
FILTER(array, include, [if_empty])FILTER関数を使えば、元の表はそのままの状態を保ちつつ、絞り込んだ結果を別の場所に表として表示できます。 元データを直接並べ替えたりフィルターをかけたりする必要がないため、複数の条件で同時に結果を比較したい場合に特に便利です。
第2引数の「含む(include)」では、全体のデータからどのようなデータを抽出したいかを比較演算子などを使って指定します。 たとえば G4:G9>=180 と指定すると、G4からG9の範囲で180以上の値を持つ行だけを抽出します。 TRUE/FALSE の配列を返す式であれば何でも使えるため、等号(=)や不等号(>、<、>=、<=)のほか、複数条件の組み合わせも可能です。
「文字列を含む」で絞り込む場合は、ワイルドカードではなく ISNUMBER(SEARCH("文字", 範囲)) を使うのが定番です。
=FILTER(A2:D8, ISNUMBER(SEARCH("東京", C2:C8)), "該当なし")C列に「東京」を含む行だけを返します。SEARCHは見つかった位置を数値で返し、見つからない場合はエラーになります。
=FILTER(A2:D8, (B2:B8="食品")*ISNUMBER(SEARCH("りんご", A2:A8)), "該当なし")FILTERでは条件同士を掛け算するとAND条件になります。「カテゴリが食品」かつ「商品名にりんごを含む」のように絞り込めます。
大文字小文字を区別したい場合は SEARCH の代わりに FIND を使います。
array
必須参照範囲を指定します。ドラッグまたは開始/終了セルの順クリックで入力できます。
include
必須比較式や計算式などの式を入力します。
if_empty
任意文字列を入力します(必要に応じて " " で囲みます)。
FILTERを使い、B列のカテゴリが食品行だけをA〜D列から抽出し、該当がなければ「該当なし」を返してください。 範囲指定は同じ引数欄で開始セルから終了セルまでドラッグで可能です。
| # | A商品ID | Bカテゴリ | C商品名 | D売上 |
|---|---|---|---|---|
| 2 | P001 | 食品 | リンゴ | 1200 |
| 3 | P002 | 食品 | バナナ | 980 |
| 4 | P003 | 文具 | ノート | 450 |
| 5 | P004 | 文具 | ペン | 300 |
| 6 | P005 | 食品 | ぶどう | 1500 |
| 7 | P006 | 文具 | 定規 | 250 |
| 8 |
関数の使い方(式)
=FILTER(A2:D8, B2:B8="食品", "該当なし")結果
P001, 食品, リンゴ, 1200 | P002, 食品, バナナ, 980 | P005, 食品, ぶどう, 1500
抽出元の範囲、残す行の条件、該当なしの場合の表示を順に指定します。「文字列を含む」で抽出する場合は、ワイルドカードではなく ISNUMBER(SEARCH("東京", C2:C8)) のように TRUE/FALSE 配列を作り、FILTER(A2:D8, ISNUMBER(SEARCH("東京", C2:C8)), "該当なし") の形で使います。
「この関数を練習」ボタンから、FILTER の練習モードをすぐ開始できます。
基本の引数は 対象範囲、抽出条件、空の場合の値 です。 必須引数を入れたあと、必要に応じて任意引数を追加します。