GoogleスプレッドシートのQUERY関数は、条件を指定して行単位でデータを抽出できる便利な関数です。
特に実務では、「日付を使ってデータをフィルターしたい」というニーズが多く見られます。
- 今日以降の予定だけ表示したい
- 特定の期間の売上データだけ見たい
- 月ごとの勤怠や出荷記録をまとめたい
ところが、いざQUERY関数で日付条件を指定してみると「何も表示されない」「うまく動かない」といったトラブルに直面することも。
この記事では、QUERY関数で日付を正しく使うための基本と、セル参照・期間抽出・今日以降のデータ抽出など、実務でよく使うパターンを、テストデータ付きで解説します。
基本構文とテストデータ
まずは基本の構文と、検証に使うサンプルデータを見てみましょう。
基本構文
=QUERY(範囲, "select 列名 where 条件", ヘッダー行の数)
日付を条件に使う場合は、date 'yyyy-mm-dd'
という形式で記述します。
さらに>=,<=などの比較演算子を使うことで範囲指定もできます。
テストデータ
今回使うテストデータです。このデータを使って次に記載する例を見ていきましょう!
日付 | 顧客名 | 商品 | 金額 |
---|---|---|---|
2024/05/28 | 田中商店 | タブレット | 25,000 |
2024/06/01 | 株式会社A | スマホ | 58,000 |
2024/06/10 | 山田商会 | ノートPC | 85,000 |
2024/07/01 | 佐藤商事 | プリンター | 15,000 |
2024/07/20 | 高橋電機 | モニター | 32,000 |
例①:2024年6月以降のデータを抽出
=QUERY(A2:D, "select * where A >= date '2024-06-01'", 1)
説明
A列の日付が「2024年6月1日以降」のデータだけを抽出します。
関数結果

例②:F1セルの日付以降のデータを抽出(セル参照)
F1セルに 2024/06/10
を入力した状態で
=QUERY(A2:D, "select * where A >= date '" & TEXT(F1, "yyyy-mm-dd") & "'", 1)
説明
日付を直接書かずに、セルの値を参照する方法です。TEXT()
関数で「yyyy-mm-dd」形式に変換するのがポイントです。
関数結果

例➂:期間指定で抽出(F1に開始日、G1に終了日)
F1セルに 2024/06/01
、G1セルに 2024/07/01
を入力した状態で
=QUERY(A2:D, "select *
where A >= date '" & TEXT(F1, "yyyy-mm-dd") & "'
and A <= date '" & TEXT(G1, "yyyy-mm-dd") & "'",
1)
説明
開始日~終了日の間のデータだけを抽出する例です。月次レポートや期間指定の集計などで活躍します。
関数結果

よくあるミスと原因・対処法
現象 | 原因と対策 |
---|---|
データが表示されない | date 'YYYY-MM-DD' の形式になっていない。シングルクォーテーション必須。 |
セル参照がうまく動かない | TEXT() 関数で日付形式に変換していない。 " & TEXT(セル, "yyyy-mm-dd") & " |
#VALUE! エラーになる | 対象セルが日付ではなく文字列になっている。ISDATE() で確認可能。 |
ヘッダーのずれで列が抽出されない | 第3引数(ヘッダー行数)が正しく指定されていない。1行目に列名があれば「1」に。 |
まとめ|日付を味方につけて、QUERYをもっと使いこなそう
スプレッドシートのQUERY関数は、日付を条件にすることで実務レベルでの活用度が一気に上がります。
date 'YYYY-MM-DD'
形式を守る- セル参照時は
TEXT()
関数で形式を整える TODAY()
や開始日・終了日の組み合わせで柔軟なフィルターが可能- 表示されないときは、ヘッダーや日付形式をまず確認
日付が扱えるようになると、QUERY関数は「使えない関数」から「最強のフィルターツール」に進化します。この記事の例をベースに、ぜひ日々の業務で活用してみてください。