このページではJavaScriptを使用しています。スクリプトが無効に設定されているとメニュー等が表示されません。
今日の日付から翌週の月曜日を算出する。
「翌週の月曜日」が何日後かを算出します。
まず「日付」の扱いを理解する。
他のページでも説明していますが、
Excel
シートのセル上での「日付」の扱いを理解すれば結構簡単に理解できることです。
「日付セル値」の実体は「
1900
年を起点とした
1
日が
1
の増分のシリアル値」です。 このことは、この日付セルの書式を「数値」に変更すると画面サンプルの「
2019/03/17
」が「
43541
」に変わることでも解ります。 当然、翌日に変更すれば「
43542
」になります。
一方、本日の「曜日値」は「
WEEKDAY
関数」から求められ、日曜日が「
1
」、月曜日が「
2
」・・・土曜日が「
7
」となることが解っているわけです。
この
2
つのことを組み合わせれば解決できることが解ると思います。
曜日は月やうるう年にも影響されずに日曜日から土曜日がきちんと繰り返されるので「次の月曜日の日を探す」ということではなく「曜日値の差し引き」だけで算出できるのです。
月曜日は「曜日値」が「
2
」で「翌週の月曜日」には「
7(
日間
)
」を加算することになるので、 「
9-
曜日値」を加算すれば良いことが解ります。
(画像をクリックすると、このページのサンプルがダウンロードできます)
=$B$2+9-WEEKDAY($B$2)
日曜日は翌日が月曜日ですが「週の起算が日曜日」という場合は翌日は同週なので「翌週の月曜日」は「
8(
日間
)
」を加算することになるので、 「
9-
曜日値」の加算で良いことが解ります。
「起点日付」には「
=TODAY()
」の関数が入っていますが変更できるのでいろいろ日付を変更して試してみて下さい。
週を「月曜起算」としたら....
企業では一般的に「月曜日」を週の起算日として処理を行なうことが多いです。
この場合は起点日付が日曜日の時だけ別扱いになります。起点日付が月曜日から土曜日の時は「
9-
曜日値」加算のままです。
起点日付が日曜日は翌日が翌週なので「
1
」の加算で良いことになります。
=$B$2+IF(WEEKDAY($B$2)>1,9-WEEKDAY($B$2),1)