SpreadSheetの使い方

【スプレッドシート】QUERY関数のwhereを複数条件指定する

QUERY関数でWHERE条件を複数指定する方法には大きく2種類あります。

  • AND(かつ)の意味で複数指定する
  • OR(または)の意味で複数指定する

この記事ではQUERY関数のWHERE条件「AND」「OR」それぞれの指定方法を、例とともに解説しているので、山行にしてみて下さい。

QUERY関数の基本
範囲 QUERY関数で検索するセル範囲。
条件 範囲の中から欲しい条件を指定します。
見出し 1行目を見出しとして出力するなら「TRUE」。見出しを出力しないなら「FALSE」と入力。
注意点 ダブルクオーテーション(”)で囲った中でテキストを扱う場合は、
シングルクオーテーション(’)で囲う。

QUERY関数WHEREの複数条件①「AND」

AND条件は「AかつB」という意味の条件です。上図のように、AとBの条件が重なる部分になります。QUERY関数で各場合には次のような表現になります。

データ例

 
A
B
C
D
1
日付
記事タイトル
カテゴリ
PV
2
2018/01/01転職ノウハウ転職100
3
2018/01/02就活ノウハウ就活210
4
2018/01/01看護師転職方法転職20
5
2018/01/02エンジニア転職方法転職30
6
2018/01/01履歴書の趣味欄の書き方就活230
7
2018/01/02履歴書の自己PRの書き方就活40

関数例

意味

カテゴリが転職かつ、PVが50未満の行を出力。

出力例

A
B
C
D
1
日付
記事タイトル
カテゴリ
PV
2
2018/01/01 看護師転職方法 転職 20
3
2018/01/02 エンジニア転職方法 転職 30

 

QUERY関数WHEREの複数条件に②「OR」

OR条件は「AまたはB」という意味の条件です。上図のように、AとBの条件どちらか一方でも当てはまる状態です。QUERY関数で各場合には次のような表現になります。

データ例

 
A
B
C
D
1
日付
記事タイトル
カテゴリ
PV
2
2018/01/01転職ノウハウ転職100
3
2018/01/02就活ノウハウ就活210
4
2018/01/01看護師転職方法転職20
5
2018/01/02エンジニア転職方法転職30
6
2018/01/01履歴書の趣味欄の書き方就活230
7
2018/01/02履歴書の自己PRの書き方就活40

関数例

意味

カテゴリが就活、または、PVが50より上

出力例

A
B
C
D
1
日付
記事タイトル
カテゴリ
PV
2
2018/01/01 転職ノウハウ 転職 100
3
2018/01/02 就活ノウハウ 就活 210
4
2018/01/01 履歴書の趣味欄の書き方 就活 230
5
2018/01/02 履歴書の自己PRの書き方 就活 40

 

複数条件「AND」と「OR」を組み合わせたらどうなるのか

データ例

 
A
B
C
D
1
日付
記事タイトル
カテゴリ
PV
2
2018/01/01転職ノウハウ転職100
3
2018/01/02就活ノウハウ就活210
4
2018/01/01看護師転職方法転職20
5
2018/01/02エンジニア転職方法転職30
6
2018/01/01履歴書の趣味欄の書き方就活230
7
2018/01/02履歴書の自己PRの書き方就活40

関数例

上記の関数は、下記のようにカッコ()で囲った場合と同じ意味になります。()を使って視覚的に理解しやすいようにするのもよいでしょう。

意味

カテゴリが就活かつPVが100より大きい、またはカテゴリが転職。

出力例

1
日付
記事タイトル
カテゴリ
PV
2
2018/01/01 転職ノウハウ 転職 100
3
2018/01/02 就活ノウハウ 就活 210
4
2018/01/01 看護師転職方法 転職 20
5
2018/01/02 エンジニア転職方法 転職 30
6
2018/01/01 履歴書の趣味欄の書き方 就活 230
QUERY関数の使い方」まとめ
QUERY関数の使い方使用頻度使用例
演算子★★★QUERY(範囲,"WHERE 列 matches '正規表現' ")
演算子starts withを使うQUERY(範囲, "where 列 starts with '検索文字列' "
演算子ends withを使うQUERY(範囲, "where 列 ends with '検索文字列' "
演算子likeで複雑な条件を指定するQUERY(範囲,"where 列 like '検索文字列' ")
演算子containsを使う★★QUERY(範囲, "where 列 contains '検索文字列' "
テクニックwhereの条件で空白を指定・除外する★★QUERY(範囲, "where 列 is not null")
テクニックQUERY関数にSUM関数を使う★★SUM(QUERY(範囲, "where 条件")
テクニックwhereの条件に日付を指定する★★★QUERY(範囲,"where 列 = date '"& TEXT(セル,"YYYY-MM-DD") &"'")
テクニックQUERY関数内でimportrange関数を使って、別シートを参照する★★★QUERY(importrange(シートID,参照範囲), "where 条件")
テクニック複数範囲・複数シートを結合する★★QUERY({IMPORTRANGE(シートURL,シート範囲);IMPORTRANGE(シートURL,シート範囲)},"WHERE 条件")
テクニックwhereの条件を複数指定する★★★QUERY("範囲", "where 条件A or 条件B and 条件C")
オプションgroup byで同じ値をグルーピングして集計する★★★QUERY(範囲,"select 列A, 集計関数(列B) group by 列A")
オプションformatを使う
オプションlimitを使う
オプションOrder byで昇順・降順を指定する★★QUERY("範囲" "order by 列 asc")
オプションpivotを使う
オプションlabelを使う
オプションoptionsを使う
オプションoffsetを使う

次の記事も読むと、未来のユーザーニーズが見えてきます

icon-check-circle Google検索の変遷から見えてくる「Googleがキュレーション化する日」
あなたの課題はなんですか?
【SEO】順位が上がらない。アクセスが集まらない。
SEOで重要なことは、ユーザーが求めている体験は何かを、感覚ではなく理論で落とし込み、どのページでも上位表示を狙える体制をつくることです。順位が上がらない、アクセスが増えないことでお悩みの方はお悩みの方は、立ち上げから1,500万PVにまで成長させた私のSEO経験がお役に立てるかもしれません。お気軽にご相談ください。
【アフィリエイト】成果が発生しない。リンクをクリックされない。
アフィリエイトで重要なことは、「何を伝えるか」ではなく「どういう気持にさせるか」「何を伝えないか」です。アフィリエイトの成果を加速させたい方は加速させたい方は、4年間積んだアフィリエイト経験が役に立つかもしれません。お気軽にご連絡ください。
【サービス登録率】登録まで行かない。登録率が改善しない。
登録率改善で重要なことは、ユーザーの思考回路を順を追って仮説として1つずつ検証していくことです。1%→3%に登録率を改善させた経験をノウハウ化して共有いたします。
【広告運用】CPAが下がらない。毎回数値がブレる。
広告運用で重要なことは、「これが刺さるだろう」と再現性の無い施策をうつのではなく、頻繁にクリエイティブを変更しても、同じ効果が維持できる検証をし続けることです。転職広告のCPA20,000円→8,000円にした経験で、お役に立てることがあるかもしれません。気軽にご連絡ください。
Twitterをフォロー 30分相談 コンサル相談 匿名質問
(2018年3月12日現在、1件コンサルの空きがあります)