QUERY関数で日付を条件に抽出する方法|スプレッドシート実務に効くテクニック

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山田商会ノートPC85,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関数は「使えない関数」から「最強のフィルターツール」に進化します。この記事の例をベースに、ぜひ日々の業務で活用してみてください。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

1994年生まれ。福岡出身、福岡育ち、福岡在住。
エンジニアを数年経験し、現在は事業会社でデータ分析業務に従事しています。
好きな物:猫、ラーメン
取得資格:基本情報技術者、G検定、統計検定2級

目次