Google Spreadsheet 月末・月初の日付を求める・query に日付を使う
n月中のデータを query で一覧にしたい時などに割と使うアレ
月末・月初の日付を求める
EOMONTH を使う
EOMONTH(開始日, 月数)
起算日から指定した月数だけ前または後ろの月の最終日の日付を返します。
開始日- 結果を計算するための起点となる日付です。月数-開始日の前(負)または後ろ(正)の計算対象となる月数です。計算結果の月の最後の暦日が返されます。使用例
EOMONTH(DATE(1969, 7, 20), 1)/EOMONTH(A2, 1)/EOMONTH(40909, -2)
月末の日付
当月末なので下記で求められる
= EOMONTH(開始日, 0) // 開始日の月末の日付
月初の日付
先月末日 + 1日で求められる
= EOMONTH(開始日, -1) + 1 // 開始日の前月末 +1日 = 開始日の月初の日付
query の条件に日付を使う
Google Spreadsheet の query の条件に日付を使うには date 'YYYY-MM-DD' の形式にする必要がある
参考: Query Language Reference (Version 0.7) | Charts | Google for Developers
例えば A1 にある日付 2025/10/15 を条件にするなら下記のように TEXT を使い YYYY-MM-DD 形式に変換する必要がある
SELECT * WHERE Col1 < date '"& TEXT(A1, "YYYY-MM-DD") &"'
該当月 (月初〜月末) であることを条件にする
A1 セルに対象月となる日付が入っている場合下記のようになる
= query( 'シート!'A:Z, "SELECT * WHERE A >= date '"& TEXT(EOMONTH(A1, -1) + 1, "YYYY-MM-DD") &"' AND A <= date '"& TEXT(EOMONTH(A1, 0), "YYYY-MM-DD") &"'" )
まとめ
- 月初日を返す関数はないので
- 月初は
EOMONTH(M, -1)で先月末を求め +1 する
- 月初は
- query の条件に日付を使うには
YYYY-MM-DDの文字列に変換する必要があることdate 'YYYY-MM-DD'の形式である必要があること
おわり
[参考]
- EOMONTH - Google ドキュメント エディタ ヘルプ
- QUERY - Google ドキュメント エディタ ヘルプ
- 月末、月初の日付を表示するEOMONTH関数|スプレッドシートの使い方
- Googleスプレッドシート QUERY関数の条件(WHERE)に日付を使いたい。 - かもメモ
- 【QUERY関数】where句で日付データを条件にして行を抽出する | 隣IT
- Google Spreadsheet ◯年の月末日のリストを自動で作りたい - かもメモ
- Googleスプレッドシート 月末までの日付で検索した一覧を取得したい - かもメモ
- Google SpreadSheet ArrayFormula の中で IsDate が意図したとおりに動かないにハマる - かもメモ
- Googleスプレッドシート QUERY関数の条件(WHERE)での空白セルの扱い方 - かもメモ
- Googleスプレッドシート 数字を3桁コンマ区切りでフォーマットしたい。 - かもメモ


