QUERY関数のWhere句で部分一致や除外条件を使う(スプレッドシート)

この記事では、GoogleスプレッドシートのQUERY関数の照会命令文(クエリ)内で使用する、Where句での部分一致条件の設定の仕方について説明します。

上記の前回記事ではWher句の基本的な使い方を解説させていただきました。おさらいになりますが、Where句の役割と特徴は以下の通りです。

Where句の役割と特徴
  • 照会先の表データから抽出する際の抽出条件を指定するためのもの
  • 条件は1つ(単一条件)でも、複数(複数条件)でも指定することができる
  • 様々な計算記号(演算子)を使用して条件を指定することができる
  • 除外条件や部分一致を条件として指定することもできる

この記事では、4つ目の項目であるWhere句における、除外条件や部分一致の設定方法について解説していきます。

目次

Where句での除外条件の設定方法

表データからデータ抽出を行う際に「特定の項目がXXXX以外のデータを抽出したい」と思うことはよくあることだと思います。もちろん、Where句でもその指定は可能です。
早速、指定方法を見てみます。

=QUERY(A1:F,”select * where not(B = ‘キャンペーンA’) “)

この例では、キャンペーン名が「キャンペーンA」に等しいもの以外のデータが抽出されました。

指定方法はシンプルで、「XXXX以外の」という条件「XXXX」の部分を、notとカッコで囲みます。まさに読んで字の如くで、カッコ内の条件を否定(=not)する形になっています。

もしくは、前回の記事で触れた計算記号(演算子)を使うこともできます。例えば「B列キャンペーン名が、キャンペーンAではない」という条件であれば、以下の通りです。

=QUERY(A1:F,”select * where B != ‘キャンペーンA’ “)

notを使うと、続くカッコ内の全てを除外することも出来ます。

=QUERY(A1:F,”select * where not(B = ‘キャンペーンA’ and B = ‘キャンペーンB’) “)

Where句での部分一致の設定方法

続いては部分一致の指定の仕方になります。これまで使っていた「=」(イコール)は、「B列がXXXXと一致する」というような完全一致の指定するものでした。

実際の使用シーンでは、「XXXXで始まる」、「XXXXで終わる」、「XXXXが含まれる」といった、部分的に一致する抽出条件、つまりは部分一致を指定したくなることがあると思います。

そういったときは、「=」の代わりに「like」演算子を使用することで部分一致の指定が可能になります。上記の3つの用途に応じて、実際の指定方法をまとめてみます。

条件パターン名指定方法抽出されるデータ例
XXXXで始まる部分一致(前方)Like ‘PC%’PCR検査
XXXXで終わる部分一致(後方)Like ‘%PC’ノートPC
XXXXが含まれる部分一致(中間)Like ‘%PC%’石丸電気PC
Like演算子の指定方法例

Likeの後に部分一致の条件を、「’」(シングルクォーテーション)で囲んで記載します。中で登場する「」マークは、何でも当てはまる0文字以上の文字列を表す記号です。こういった記号をワイルドカードと呼びます。

早速ですが、実際の使用例を見てみましょう。

部分一致(前方)

都道府県(一部)の表データから「北」で始まるものを抽出してみます。

LIKE演算子を使用した前方一致の設定
LIKE演算子を使用した前方一致の設定

=query(A1:A,”Select * Where A like ‘北%'”,1)

部分一致(後方)

次に同じ表データから「府」で終わるものを抽出してみます。

LIKE演算子を使用した後方一致の設定
LIKE演算子を使用した後方一致の設定

=query(A1:A,”Select * Where A like ‘%府'”,1)

部分一致(中間)

続いて、「川」が含まれるものを抽出してみます。(わかりやすくするため、香川県を追加しました)

LIKE演算子を使用した部分一致の設定
LIKE演算子を使用した部分一致の設定

=query(A1:A,”Select * Where A like ‘%川%'”,1)

まとめと更なる応用の話

今回説明させていただいた、除外条件と部分一致はもちろん組み合わせ使うこともできます。これらを駆使することで抽出できる条件の幅が広がり、瞬時に欲しいデータセットまで辿り着くことが出来るようになります。

=query(A1:A,”Select * Where A not(like ‘%川%’)”,1)

更に応用的な話として、条件指定には「match」という演算子を使用して「正規表現」も使用可能です。正規表現を使うことで、更に複雑な部分一致を指定することが出来たります。「正規表現」は実にプログラム的な書き方になり、エンジニア経験がないと覚えるのは大変ですが、ある程度の基本を押さえてしまえば(=Webとかで調べながらでも使えるレベルでも全然OK)、指定できない条件はほぼなくなります。

QUERY関数については、他の記事もアップしていますので、参考になりそうなものがあれば、ぜひ御覧ください。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
目次
閉じる