こんにちは。
自分のためのメモということで小ネタを残しておきます。
やりたいこと
Googleスプレッドシートにデータをフィルタする機能がある。
以下のようなデータがあったとして
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F42238%2F69ee3d79-9149-ade4-017a-8b06c2fc0bb7.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=031e7766c8666688728a156f30bc0bb1)
gmail.com
だけを表示するように「条件でフィルタ」すると
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F42238%2F95128952-e391-3250-1dfd-03f3cd76b3ab.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=7f7e9531318e222ab7294c6f2812e32b)
こうなる。とても便利。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F42238%2Fafa29586-539e-6197-1168-949c15efa2df.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=acde795c1a20ce2aba11b7f3822794fe)
この「次を含むテキスト」などでフィルタするときに 複数の条件をAND条件かOR条件で指定 したい。
ついでに正規表現も使いたい。
解決策
「カスタム数式」というのを使うといけた。
=OR(REGEXMATCH(B:B, "gmail.com"), REGEXMATCH(B:B, "hotmail.com"))
と指定すると「 gmail.com
を含む、または、 hotmail.com
を含む」という条件になる。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F42238%2Fdcc945e8-f11f-936c-0224-3a2e3cb8e5f8.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=b67b0f4d9ed6e24b3530db35b0b78f9f)
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F42238%2F70b5ad6b-7a8e-64e3-7d39-a6a6f9a7e38d.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=0db3f8dfca937b132df1d49369c1457b)
ちなみに B:B
というのはフィルタする対象の列全体を表しているようで、 <対象の列>:<対象の列>
という書き方をすれば良さそう、たぶん。
OR
を AND
にするとAND条件にできる。
おまけ
NOT
AND
や OR
があるので NOT
も使える。
=OR(REGEXMATCH(B:B, "gmail.com"), NOT(REGEXMATCH(B:B, "hotmail.com")))
と指定すると「 gmail.com
を含む、または、 hotmail.com
を含まない」という条件になる。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F42238%2Fbba188af-e4b6-2bfc-c182-6d148d56a5b0.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=932ae62a54421cf749bdbe2e0bc46901)
正規表現
正規表現も普通に使える。
=REGEXMATCH(B:B, "^b.+@yahoo.com$")
と指定すると「 b
で始まって @yahoo.com
で終わる」という条件になる。
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F42238%2F388b9146-c490-fda5-24fe-bca693fbc9fe.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=38024f78443d60747a4c160210fe4851)
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.ap-northeast-1.amazonaws.com%2F0%2F42238%2Fb04c6f50-52c3-fa9c-188c-124249256984.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=c0014c38711e201dd7d6eda483721395)