直近の日曜日を求める

 日付から直近の日曜日の日付を求める方法です。日付が日曜日である場合に、その日でよしとする場合と次の日曜日を求める場合の2通りを示します。
 当然ですが何曜日を求める場合にも応用可能です。

 例として右のようなテーブルを用いて、「登録日」以降最初の日曜日を求めるものとします。


当日を含む日曜日を求める場合

 クエリデザインで次のように入力します。

   直近日曜: DateAdd("d",7-Weekday([登録日],2),[登録日])

「Weekday([登録日],2)」は日付が月曜日のとき1を、火曜日のとき2を、…日曜日のとき7を返しますので「7-Weekday([登録日],2)」は月曜日の場合は6を、火曜日の場合は5を、…日曜日の場合は0を返します。DateAdd関数を用いてこの日数を加えた日付を求めているというわけです。
 なお、「曜日」列は確認のため表示しているもので、日曜日を求めるのには必要ありません(以下同様)。


 日付が日曜日の場合(2015/11/15)には、当日の値が返されていることがわかります。


翌日以降の日曜日を求める場合


 クエリデザインで次のように入力します。

   翌日以降日曜: DateAdd("d",8-Weekday([登録日]),[登録日])

「Weekday([登録日])」は日付が日曜日のとき1を、月曜日のとき2を、…土曜日のとき7を返しますので「8-Weekday([登録日])」は日曜日の場合は7を、月曜日の場合は6を、…土曜日の場合は1を返します。DateAdd関数を用いてこの日数を加えた日付を求めているというわけです。


 日付が日曜日の場合(2015/11/15)には、次の日曜日の値(2015/11/22)が返されていることがわかります。