【Excel】数式で成人の日の日付を計算する

Excel

たまに使うのですが、毎回忘れるのでメモ。

Excelの数式で、ある年のある月のN番目のある曜日を求める。
(日付を表すシリアル値が返される。)
成人の日(1月第2月曜日)、海の日(7月第3月曜日)、敬老の日(9月第3月曜日)、スポーツの日(10月第2月曜日)を数式で表現したい場合など。

=DATE(【年】,【月】,1)+MOD(【曜日】-WEEKDAY(DATE(【年】,【月】,1))+7,7)+7*(【N】-1)

ここで、【曜日】には、曜日に割り当てられた1~7の数値が入る。(WEEKDAY関数の戻り値)
日:1、月:2、火:3、水:4、木:5、金:6、土:7
考え方としては、その月にその曜日が最初に出てくる日を求めて、週の補正を行っている。

使用例:2023年の成人の日を求める(1月の第2月曜日)
【年】=2023
【月】=1
【曜日】=2
【N】=2
=DATE(2023,1,1)+MOD(2-WEEKDAY(DATE(2023,1,1))+7,7)+7*(2-1)

コメント

タイトルとURLをコピーしました