いきなり答える備忘録

Google Workspace(旧G Suite)・Microsoft 365・LibreOfficeなどに関するメモ

(Gスプレッドシート)FILTER関数で多数の検索キーを設定する

 GoogleスプレッドシートのFILTER関数を使った抽出の際に、条件として1つの列に多数の検索キーを設定する例です(完全一致・OR検索)。+演算子を使う方法もありますが、より簡単に実現できます。

  • FILTER関数とCOUNTIF関数を併用すれば多数の検索キーによるOR検索抽出ができます。

手順

 まずは+演算子を使った場合を見てみます。
 FILTER関数を使い、E3:E6に入力された4つの県名をキーとして、B3:B19の範囲を検索し、該当するB,C列の値(県名と市町村名)を取得しています。

 G3セル

=FILTER(B3:C19,(B3:B19=E3)+(B3:B19=E4)+(B3:B19=E5)+(B3:B19=E6))

 一種のOR検索ですので第2引数(条件)において+演算子を使って4つの条件をつなぎ、抽出を実現しています。


 キーが4つ程度だとさほど問題ありませんが、より多数になると式の入力や変更が非常に面倒になります。
 そこで、次の画像ではCOUNTIF関数を使い、条件を配列で渡すことにより全く同じ結果を得ています。

 G3セル

=FILTER(B3:C19,COUNTIF(E3:E6,B3:B19))

 COUNTIF関数により、B3:B19のそれぞれの値がE3:E6の範囲にいくつずつ存在するかをカウントしています。B3:B19の範囲に対応した17個の数値が返ってきますのでこれをFILTER関数と組み合わせ、1(以上)なら抽出、0なら抽出しないという条件として利用しています。
 多数のキーの設定や変更が簡単にできるのがメリットです。ただし検索データの方から検索キーを数えるやり方なのでワイルドカードが事実上使えませんし、もちろん大小比較もできません。完全一致検索の場合に適した方法です。