【QUERY関数】where句でand,orを使用して複数条件を指定する方法


QUERY関数7アイキャッチ

みなさんこんにちは!
もり(@moripro3)です。

GoogleスプレッドシートQUERY関数の使い方をシリーズでお届けしています!

前回はwhere句の条件に「時刻」を指定する方法を紹介しました。

【QUERY関数】where句で時刻データを条件にして行を抽出する
GoogleスプレッドシートのQUERY関数を紹介するシリーズ。第六回目は、where句の条件に時刻を指定する方法です。指定の時刻以前・以降のデータを抽出する方法、現在時刻を基準としてデータ抽出する方法を紹介しています。

これまでシリーズを通して紹介してきた抽出は、すべて「単一条件の指定」でした。

会社の実務では、1つの条件だけでなく、複数の条件を組み合わせる必要があると思います。この記事では、where句に複数の条件を指定する方法を紹介します。

それではみていきましょう!

単一条件と複数条件とは

まずは用語の確認からしていきましょう。

  1. 単一条件
  2. 複数条件

「単一条件」とは「条件が1つだけ」という意味です。たとえば、このようなシンプルな指定です。

  • 価格が1,000円以上の商品
  • ○○さんが購入した商品

それに対して、「複数条件」とは、「2つ以上の条件」のことです。

  • ○○さんが購入した1,000円以上の商品

QUERY関数のwhere句で複数条件を指定するための、2つの新しい「論理演算子」を紹介します。

  1. or … AまたはB(いずれかの条件に合致する)
  2. and … AかつB(すべての条件に合致する)

この or と and は、スプレッドシートの他の関数で使っている方もいるでしょう。

それでは、この備品購入リストを使用して、複数条件のデータ抽出方法を紹介します。

query7-1

orを使用した複数条件の指定

where句の条件を or で結合すると、いずれかの条件に合致する行のみを抽出できます。

where 条件1 or 条件2 or 条件3…

or を使用して、備品購入リストから、モリとテラドが購入した備品一覧を抽出してみます。条件はこの2つです。

  • 条件1:E列購入者が「モリ」
  • 条件2:E列購入者が「テラド」

条件1 と 条件2 を or結合 する書き方がこちらです。

query7-4

ポイントは、同じ列(ここではE列)の条件を指定する場合でも、列名を省略せずに、条件ごとに記述することです。

where E = ‘モリ’ or E = ‘テラド’
where E = ‘モリ’ or ‘テラド’

andを使用した複数条件の指定

where句の条件を and で結合すると、複数条件のすべてに合致する行のみを抽出できます。

where 条件1 and 条件2 and 条件3…
モリが購入した1,000円以上の備品一覧を抽出してみます。条件はこの2つです。
  • 条件1:E列購入者が「モリ」
  • 条件2:D列単価が1,000円以上

条件1 と 条件2 を and結合 します。

query7-2

 

条件は、3つ以上を組み合わせることも可能です。条件3を加えてみます。

  • 条件1:E列購入者が「モリ」
  • 条件2:D列単価が1,000円以上
  • 条件3:D列単価が10,000円未満

query7-3

これで、モリが購入した1,000円以上10,000円未満の一覧を取得できました。

and と or を組み合わせた複数条件の指定

ここまでの知識を組み合わせて、実務を想定した、高度な抽出を2つ紹介します!

and と or の組み合わせ・その1

「モリまたはテラドが購入した1,000円以上の備品」の一覧を抽出してみます。

まずは条件を整理します。

  • 条件1:購入者が「モリ」または「テラド」
  • 条件2:単価が1,000円以上

QUERY関数の書き方がこちらです。

【解説】条件1を or結合 で作成し、条件1 と 条件2 を and結合します。

  • 条件1:E列が「モリ」または「テラド」
    • (E = ‘モリ’ or E = ‘テラド’)
  • 条件2:D列が1,000円以上
    • D >= 1000

query7-6

and と or の組み合わせ・その2

「すべてのOA機器」と「1,000円以上の事務用品」の一覧を抽出してみましょう。
水色(5行)と緑色(2行)の、計7行が抽出できれば正解です。

query7-7

条件を整理します。

  • 条件1:区分が「OA機器」… 水色の行
  • 条件2:区分が「事務用品」、かつ、単価が1,000円以上 … 緑色の行

QUERY関数の書き方がこちらです。

【解説】条件2を and結合 で作成し、条件1 と 条件2 を or結合します。

  • 条件1:B列 が「OA機器」
    • B = ‘OA機器’
  • 条件2:区分が「事務用品」、かつ、単価が1,000円以上
    • (B = ‘事務用品’ and D >= 1000)

query7-5

まとめ

今回の記事では、where句で複数条件を指定する方法をお伝えしました。

and, or の考え方は、VBA・GASなどのプログラミングでも大いに役立ちますよ!ワンランク上の事務職を目指す方は、ぜひ覚えておきたいですね。

頭の中で考えて混乱しそうな時は、条件を紙に書き出して整理してみるのもオススメです。

さて、ここまでのシリーズを通して、QUERY関数の基本であるselect句とwhere句を紹介してきました。

  • select句で列の抽出をする方法
  • where句で行の抽出をする方法

次回は、select句・where句でデータを抽出しつつ、その抽出結果を並び替える方法を紹介します。

【QUERY関数】order by句で抽出結果を昇順・降順ソートする
GoogleスプレッドシートのQUERY関数を紹介するシリーズ。第八回目は、order by句を使用して、抽出結果をソートする方法の紹介です。descで降順ソート・ascで昇順ソートができます。

連載目次:GoogleスプレッドシートQUERY関数をマスターしよう

スプレッドシートのQUERY関数を使って、データ抽出・集計を効率化する方法を紹介しています。

  1. スプレッドシートのQUERY関数を使う最初の一歩!クエリを理解する
  2. QUERY関数の基本!別シートのデータからselect句で列を取得する方法
  3. 【QUERY関数】where句と比較演算子を使って単一条件に一致した行を抽出する
  4. 【QUERY関数】where句とlike演算子を使用して指定の文字を含む行を抽出する
  5. 【QUERY関数】where句で日付データを条件にして行を抽出する
  6. 【QUERY関数】where句で時刻データを条件にして行を抽出する
  7. 【QUERY関数】where句でand,orを使用して複数条件を指定する
  8. 【QUERY関数】order by句で抽出結果を昇順・降順ソートする
  9. 【QUERY関数】group by句とcount関数で列のデータ数をカウントする

  投稿者プロフィール

もり
もりシステムエンジニア・Webライター
「ラクするために全力を尽くす」をモットーに日々勉強。退屈なことはプログラミングで片づけよう。
事務作業をとことんラクにできるITネタを発信していきます。

お気軽にフォローしてくださいね!

もりの詳しいプロフィールはこちら
▽▽▽

コメント

タイトルとURLをコピーしました