FILTER関数であいまい検索(抽出)をする方法です。
FILTER関数とは?
FILTER関数を使うと、範囲の中から特定条件の結果を抽出することができます。
=FILTER(配列,含む,[空の場合])
GoogleスプレッドシートのFILTER関数を使うことで、表の中から指定した値の結果を抽出することができます。
F列の輪菊(白)が抽出できました。
FILTER関数であいまい検索ができない?
このfilter関数であいまい検索をしようとしても、そのままでは結果がうまく返ってきません。アスタリスクで出来ないかな?と、試しても、エラー(一致するものはありません)で返ってきます。
=FILTER(estimate_quantity_flower!A:K,estimate_quantity_flower!F:F="輪菊*")
この際に、あいまい検索を実現する方法です。
FIND関数を組み合わせる
[rml_read_more]
ここで、FIND関数を組み合わせます。
=FILTER(estimate_quantity_flower!A:K,FIND("輪菊",estimate_quantity_flower!F:F))
FIND
関数は、指定した文字列 (“輪菊”) が estimate_quantity_flower
シートの F
列に存在する位置を返します。
FIND("輪菊",estimate_quantity_flower!F:F)
FIND
関数は、指定した文字列が見つからない場合はエラーを返すため、この式全体では、F
列に “輪菊” という文字列が含まれている行のみがフィルタリングされます。
結果として、この式は estimate_quantity_flower
シートの A
列から K
列までの範囲で、F
列に “輪菊” という文字列が含まれている行のみを返します。
あいまい検索で結果が返って来ました!
まとめ
FIND関数をFILTER関数と組み合わせると「含む」に変わりました。
なぜFIND関数の返り値でこうなるのか…?が今のところ謎ですが、FILTER関数とFIND関数を組み合わせることでフィルターのあいまい抽出が可能になります。
御参考ください。