みなさんこんにちは!
もり(@moripro3)です。
GoogleスプレッドシートQUERY関数の使い方をシリーズでお届けしています!
前回はQUERY関数の超基本!select句で列を抽出する方法を紹介しました。
今回の記事では、where句と比較演算子を使用して、指定条件に一致する「行」を抽出する方法を紹介します。
それではみていきましょう!
QUERY関数のwhere句とは?
where句とは、データの中から、指定条件に一致する行を抽出する句です。
where句を使うと何ができるのかを、サンプル「備品購入リスト」でご紹介します。このリストから、B列が「OA機器」の行を抽出してみます。
↓ B列「区分」が’OA機器’の行のみを抽出
条件に一致する5行が抽出できました。
このように、データの中から、指定の条件に一致する「行」を抽出するときに使うのがwhere句の役割です。
QUERY関数のwhere句を使うメリット
「行の抽出」と聞くと、フィルタ機能を思い浮かべる方もいるでしょう。B列「区分」でフィルタをかければ、同様の結果が取得できますね。
シリーズ初回の記事でお伝えしたQUERY関数のメリットを再度お伝えします!
- 「元データ」と「抽出データ」を別々のシートに分けて管理できる
- 一度セルに関数を入力すれば、元データに変更が発生しても、自動で結果が反映される
フィルタ機能で行抽出をする場合、元データが変わるたびに手動でポチポチと設定しなおす必要がありますね。
また、データ全体を確認したいときに、フィルタを解除する手間も発生します。
元データと抽出データを別々のシートに分けて管理できることで、確認したいデータを、スムーズにチェックすることができます。
前回までのおさらい:構文と別シートの参照
QUERY関数の構文がこちらです。3つの引数を指定します。
「データ」が参照するサンプルデータの情報が下記なので、
- シート名:備品購入リスト
- データ範囲:A列~E列
第1引数は‘備品購入リスト’!A:Eと指定します。シート名をシングルクォートで囲み、!を付けます。
where句の条件指定に使う比較演算子
where句で使える比較演算子の一覧です。文字列との比較・数値との比較が可能です。
演算子 | 意味 |
---|---|
= | ~と等しい |
<>または!= | ~と等しくない |
> | ~より大きい |
>= | ~以上 |
< | ~より小さい(未満) |
<= | ~以下 |
次の項から、これらの演算子を使って行の抽出をしてみましょう!
単一条件で行を抽出する
where句の最も簡単な使い方を紹介します。条件を1つだけ指定して、行を抽出します。
抽出条件に「文字列」を指定する
B列「区分」がOA機器の行を抽出します。抽出条件の値が文字列の場合は、シングルクォートで囲みます。
ここではすべての列を抽出するので、select句にアスタリスク(*)を指定します。select句の使用方法は前回の記事をご覧ください。
=query('備品購入リスト'!A:E,"select * where B = 'OA機器'",1)
比較演算子の<>(~と等しくない)を使用すると、「~以外」の行を抽出することができます。OA機器以外の行を抽出する書き方です。
=query('備品購入リスト'!A:E,"select * where B <> 'OA機器'",1)
※QUERY関数ですべての列を抽出する場合、select句を省略することも可能です。
=query('備品購入リスト'!A:E,"where B = 'OA機器'",1)
ただし、「すべての列を抽出する」ことを明示するために、この記事ではselect句を記述しています。
抽出条件に「数値」を指定する
where句の抽出条件には数値も指定できます。
備品購入リストから、D列「単価」が1,000円未満の行を抽出します。使用する比較演算子は<(~より小さい・未満)です。
数値と比較する場合、数値をシングルクォートで囲む必要はありません。
=query('備品購入リスト'!A:E,"select * where D < 1000",1)
つづいて、1,000円以下の行を抽出してみます。
使用する比較演算子は<=(~以下)です。「以下」の場合は、1000も含まれますね。
=query('備品購入リスト'!A:E,"select * where D <= 1000",1)
比較演算子 < と <= の使い分けは注意しましょう!(> と => も)
- 列 < x(xより小さい)… xは含まない
- 列 <= x(x以下)… xを含む
まとめ
今回の記事では、where句と比較演算子を使用して、条件に一致する行を抽出する方法をお伝えしました。
- where句を使用すると、指定条件に一致する行を抽出できる
- 条件の指定に「比較演算子」を使う( =, !=, <>,<=, <, >, >= )
この記事では「単価が1,000円未満」といった、条件を1つだけ指定する方法を紹介しました。where句では「区分がxx かつ 単価がxx」という複数条件の指定も可能です。シリーズを通して紹介していきます。
さて、次回も引き続きwhere句をお伝えします。先頭が○○で始まる、○○を含む、など、部分一致で検索する方法を紹介します!
連載目次:GoogleスプレッドシートQUERY関数をマスターしよう
スプレッドシートのQUERY関数を使って、データ抽出・集計を効率化する方法を紹介しています。
- スプレッドシートのQUERY関数を使う最初の一歩!クエリを理解する
- QUERY関数の基本!別シートのデータからselect句で列を取得する方法
- 【QUERY関数】where句と比較演算子を使って単一条件に一致した行を抽出する
- 【QUERY関数】where句とlike演算子を使用して指定の文字を含む行を抽出する
- 【QUERY関数】where句で日付データを条件にして行を抽出する
- 【QUERY関数】where句で時刻データを条件にして行を抽出する
- 【QUERY関数】where句でand,orを使用して複数条件を指定する
- 【QUERY関数】order by句で抽出結果を昇順・降順ソートする
- 【QUERY関数】group by句とcount関数で列のデータ数をカウントする
- 【QUERY関数】group by句とsum関数で列の値の合計値を求める
- 【QUERY関数】group by句とavg関数で列の値の平均値を求める
- 【QUERY関数】group by句とmax・min関数で列の最大値・最小値を求める
- 【QUERY関数】group by句で複数の列をグループ化して集計する