大量のデータが並んだスプレッドシートで、特定の条件に合う行だけを抽出したいと思ったことはありませんか。QUERY関数のWHERE句を使うと、まるでデータベースのように柔軟な絞り込みが可能です。この記事では、WHERE句の基本からテキスト・数値・日付の条件指定方法、複数条件の組み合わせまでを解説します。実際の構文例を交えながら、確実に操作できるようになるでしょう。
【要点】WHERE句でデータを自在に絞り込む3つのポイント
- =QUERY(範囲, “select * where A = ‘東京'”, 0) の基本構文: select句の後にwhereで条件式を記述し、テキストはシングルクォーテーションで囲みます。
- 数値条件は引用符なしで記述: 数値の比較は「where B > 1000」のように裸の数値で書きます。日付はdate型関数で指定します。
- and/orで複数条件を結合: 「where A = ‘東京’ and B > 5000」のようにandやorを使って複数の条件を同時に指定できます。
ADVERTISEMENT
目次
QUERY関数のWHERE句が持つ役割と仕組み
QUERY関数は、Googleスプレッドシートのデータに対してSQLライクなクエリを実行できる強力な関数です。その中でもWHERE句は、行を絞り込むための条件指定を行う部分です。select句で取得する列を指定した後、whereで条件を追加することで、特定のデータだけを抽出できます。
WHERE句では、比較演算子(=, <>, >, <, >=, <=)や、文字列の部分一致を表すcontains、リスト内の一致を調べるmatchesなどが使えます。また、条件式には列の値そのものだけでなく、計算式や関数を使うことも可能です。
WHERE句を使ったデータ絞り込みの基本手順
ここでは、実際にQUERY関数を記述する流れを、代表的な条件パターンごとに解説します。
テキストの完全一致で絞り込む
- 抽出したいセル範囲を決める
まず、元データが入っている範囲を確認します。例えばA列に地域、B列に売上金額が入力されているとします。 - QUERY関数を入力する
結果を表示したいセルに「=QUERY(範囲, “select * where A = ‘東京'”, 0)」と入力します。範囲は絶対参照でも構いません。 - テキストはシングルクォーテーションで囲む
条件に使う文字列は必ずシングルクォーテーション(‘)で囲みます。ダブルクォーテーションはクエリ全体を囲むために使うため、誤用しないよう注意してください。
数値の比較で絞り込む
- 比較演算子を指定する
数値の列に対しては、>や<、>=、<=、=、<>などの演算子が使えます。例えば売上金額が1000より大きい行を抽出するには、「where B > 1000」と記述します。 - 数値は引用符で囲まない
数値はそのまま数字を書きます。引用符で囲むとテキストとして扱われ、正しく比較できないので注意してください。 - 整数・小数どちらでも同じ構文
「where B >= 500.5」のように小数もそのまま使えます。列のデータ型に合わせて適切な比較を行います。
日付で絞り込む
- 日付はdate関数で指定する
日付の列を条件にする場合、文字列ではなくdate関数を使います。「where C = date ‘2024-01-15’」のように日付リテラルを書きます。 - 日付の書式はyyyy-MM-dd
年の桁数やハイフンの位置を正しく守ります。月や日は2桁で記述してください。 - 日付の範囲を指定する
「where C >= date ‘2024-01-01’ and C <= date '2024-03-31'」のようにandを使うと、特定の期間のデータを抽出できます。
複数条件を組み合わせる(and / or)
- andで両方満たす条件
「where A = ‘東京’ and B > 5000」と書くと、地域が東京かつ売上金額が5000より大きい行だけを抽出します。 - orでいずれか満たす条件
「where A = ‘東京’ or A = ‘大阪’」のようにorを使うと、複数の値のいずれかに一致する行を取得できます。 - かっこで優先順位を明示
「where (A = ‘東京’ or A = ‘大阪’) and B > 3000」のように、or条件をかっこで囲むと意図通りに評価されます。
部分一致(contains)や前方一致(starts with)
- containsで部分一致
「where A contains ‘東’」と書くと、地域列に「東」を含むすべての行を抽出します。大文字小文字は区別しません。 - starts withで前方一致
「where A starts with ‘北’」と書くと、地域列が「北」で始まる行を抽出します。 - ends withで後方一致
「where A ends with ‘県’」と書くと、地域列が「県」で終わる行を抽出します。
WHERE句を使う際の注意点とよくある失敗例
WHERE句は便利な反面、細かいルールを間違えるとエラーや意図しない結果になります。以下の点に注意してください。
テキストをダブルクォーテーションで囲んでしまう
クエリ全体をダブルクォーテーションで囲んでいるため、条件内のテキストもダブルクォーテーションにすると構文エラーになります。必ずシングルクォーテーションを使います。
日付を文字列のまま比較してしまう
「where C = ‘2024-01-15’」のように書くと文字列として比較されるため、日付として正しく扱われません。date関数を使って明示的に日付型にする必要があります。
列名にスペースや特殊文字が含まれる場合
列名に半角スペースがある場合は、列をバッククォート(`)で囲みます。例えば「where `売上金額` > 1000」のように記述します。
改行やセル内の余分な空白
データに意図しない空白が含まれていると、一致条件がうまく機能しません。TRIM関数で事前に余分なスペースを除去しておくとよいでしょう。
ADVERTISEMENT
QUERY関数のWHERE句とFILTER関数の違い
| 比較項目 | QUERY関数・WHERE句 | FILTER関数 |
|---|---|---|
| 構文 | SQLライクで文字列として記述 | 関数の引数として条件式を直接記述 |
| 複数シート参照 | IMPORTRANGEと組み合わせ可能 | 直接参照する場合は同一ファイル内 |
| 集計 | select句でsumやavgなどの集計が可能 | 集計は別途SUMIFSなどが必要 |
| 部分一致 | contains, starts with, ends withが使える | 正規表現で実現する必要がある |
| パフォーマンス | 大規模データでも高速な場合がある | 条件が複雑だと重くなることがある |
まとめ
QUERY関数のWHERE句を使うと、テキスト・数値・日付の条件でデータを自由に絞り込めます。基本は「select * where 列 演算子 値」の形で、テキストはシングルクォーテーション、数値は裸、日付はdate関数で記述します。andやorで複数条件を組み合わせることも可能です。さらに、containsやstarts withを使えば部分一致にも対応できます。
今回紹介した基本パターンを押さえれば、売上データの月別集計や顧客リストの地域フィルタなど、さまざまな場面で役立つでしょう。次のステップとしては、QUERY関数のgroup by句でデータを集計したり、order by句で並び替えたりする方法を試してみると、より高度なデータ分析が可能になります。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】数値の連続データを自動入力!オートフィルの活用
- 【Googleスプレッドシート】ダークモードを有効にする!目に優しい配色への切替
- 【Googleスプレッドシート】株価APIで株式データを自動取得!GOOGLEFINANCE超え活用
- 【Googleスプレッドシート】共有相手が編集できない時のチェック!権限と許可状態の確認
- 【Googleスプレッドシート】ページ設定で用紙サイズと向きを調整!印刷レイアウトの基本
- 【Googleスプレッドシート】Excelファイルxlsxをインポートする手順!ドラッグ&ドロップで取り込み
- 【Googleスプレッドシート】条件付き書式をコピーする!書式のみペーストの活用
