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

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

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

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

[su_box title=”QUERY関数の基本”]

=QUERY(範囲,"SELECT * WHERE 条件",見出し)

[su_table]

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

[/su_table]

[/su_box]

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

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

=QUERY(範囲,"SELECT * WHERE 条件1 AND 条件2")

データ例

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

関数例

=QUERY(A:D,"SELECT * WHERE C='転職' AND D<50,TRUE)

意味

カテゴリが転職かつ、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関数で各場合には次のような表現になります。

=QUERY(範囲,"SELECT * WHERE 条件1 OR 条件2")

データ例

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

関数例

=QUERY(A:D,"SELECT * WHERE C='就活' OR D>50)

意味

カテゴリが就活、または、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」を組み合わせたらどうなるのか

=QUERY(範囲,"SELECT * WHERE 条件1 OR 条件2")

データ例

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

関数例

=QUERY(A:D,"SELECT * WHERE C='就活' and D>100 OR C='転職'")

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

=QUERY(A:D,"SELECT * WHERE (C='就活' and D>100) OR C='転職'")

意味

カテゴリが就活かつ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関数の使い方使用頻度使用例
オプションOrder byで昇順・降順を指定する★★QUERY("範囲" "order by 列 asc")
オプションgroup byで同じ値をグルーピングして集計する★★★QUERY(範囲,"select 列A, 集計関数(列B) group by 列A")
オプションpivotを使って、group byをさらにグルーピングして表示するQUERY(範囲, "select 列A, 集計関数(列A) where group by 列A pivot 列B")
オプションlabelを使って、出力される列のラベルを変更するQUERY(範囲, "label 列 '名前' ")
オプションformatを使って、出力される値の表示形式を変更するQUERY(範囲, "format 列 '表示形式' ")
オプションlimitを使って、表示する行数に制限をかけるQUERY(範囲, "limit 数")
オプションoffsetを使って表示データを上からスキップする方法QUERY(範囲, "offset 数")
オプションoptionsを使う
演算子containsを使って、指定文字列を含む行を表示する★★QUERY(範囲, "where 列 contains '検索文字列' "
演算子starts withを使って、行の先頭文字列に条件を指定するQUERY(範囲, "where 列 starts with '検索文字列' "
演算子ends withを使って、行の後尾文字列に条件を指定するQUERY(範囲, "where 列 ends with '検索文字列' "
演算子likeで複雑な条件を指定するQUERY(範囲,"where 列 like '検索文字列' ")
演算子★★★QUERY(範囲,"WHERE 列 matches '正規表現' ")
テクニック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")
[su_note note_color="#00BFFF" text_color="#ffffff"] 人気の記事

icon-check-circle Google検索の変遷から見えてくる「Googleがキュレーション化する日」
[/su_note]
タイトルとURLをコピーしました