特定の日付の次の月曜日を計算するにはどうすればよいですか?


11

日付を含むセル値を調べ、その日付の後に発生する最初の月曜日を返すことができる数式を探しています。

例(MM / dd / yyyy形式):

10/22/2013 (Tuesday) would return 10/28/2013 (Monday)
10/28/2013 (Monday)  would return 10/28/2013 (Monday)

回答:



3

もう少し洗練されたソリューションは、各入力を適切な日数だけシフトすることです。

=B2+MOD(9-WEEKDAY(B2),7)

賢くなりたい場合は、エポックが土曜日に下がったことがわかっているため、WEEKDAYは必要ありません(WEEKDAY(0)を計算してこれを確認してください)。

=B2+MOD(9-B2,7)

1

特定の曜日(N-day)で機能する汎用的でエレガントなソリューション:

セルB2:週の次のN-dayに変更する日付。セルB3:次のN曜日:Mon = 1、Tue = 2、...;

=B2+MOD(B3-WEEKDAY(B2,2),7)

特定の曜日、この場合は月曜日(day = 1)の場合、式は次のように「ハードコード」できます。

=B2+MOD(1-WEEKDAY(B2,2),7)

曜日の2番目のパラメーターを「2」に設定するweekday(B2,2)と、上記の式(セルB1)で使用される目的のN日と一致する曜日が返されます。つまり、Mon = 1、Tue = 2、...です。


0

フランクのソリューションは月曜日に最適ですが、他の日には機能しません(2番目の式のみをテストしました)。ただし、次の式は他の日でも機能します。B2を日付、B3を日としましょう(B3は1から7で、日曜日は1です):

=IF(WEEKDAY(B2,1)<B3, B2+B3-WEEKDAY(B2,1), B2+B3+7-WEEKDAY(B2,1))

注:これは、B2が要求された日であっても、翌日を検索します。しかし、B2が要求された日である場合、次の式は今日返されます。

=IF(WEEKDAY(B2,1)<=B3, B2+B3-WEEKDAY(B2,1), B2+B3+7-WEEKDAY(B2,1))
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.