今回はさくっと短めの記事。
まず過去直近の日曜(当日含む)の日付を求めるコードがこちら。
?date-weekday(date,vbSunday)+1
クエスチョンマークは、イミディエイトウインドウで実行することを想定して書いている。
そして当日を含まない過去直近の日曜の日付を求めるコードはこちら。
?date - weekday(date-1,vbSunday)
どちらも曜日定数を代えると直近のその曜日が取れる。
結論は以上。
ここからは余談
当日を含まない方で、まず私が考えたのがIf文で当日の場合だけ分岐させる方法。
?iif(date = date-weekday(date,vbSunday)+1, date -7, date-weekday(date,vbSunday)+1)
もうちょっと楽にならんかなとTwitterでぼやいたところ、はけた氏より以下のアドバイスをいただいた。
weekdayの中で「date+1」とか「date-1」とか入れたら、簡単になりませんか?
なるほど、賢い。
当日を含めたくないなら、単純に前日起算してやれば良いのだ。
ということで両方のdateから1を引く。
?date-1-weekday(date-1,vbSunday)+1
-1と+1を相殺して、こう。
?date - weekday(date-1,vbSunday)
完成。