Wie berechnet man den nächsten Montag nach einem bestimmten Datum?

11

Ich suche nach einer Formel, die einen Zellenwert anzeigen kann, der ein Datum enthält, und den ersten Montag zurückgibt, der nach diesem Datum auftritt.

Beispiele (Format MM / TT / JJJJ):

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

Antworten:

15

Lassen Sie B2die Zelle mit dem Datum.

=IF(WEEKDAY(B2)=2, B2, IF(WEEKDAY(B2)=1,B2+1, B2+9-WEEKDAY(B2)))

oder

=IF(WEEKDAY(B2,3)=0, B2, B2+7-WEEKDAY(B2,3))
Franck Dernoncourt
quelle
3

Eine etwas elegantere Lösung besteht darin, jede Eingabe um die richtige Anzahl von Tagen zu verschieben.

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

Wenn Sie klug sein möchten, wird WOCHENTAG nicht benötigt, da wir wissen, dass die Epoche auf einen Samstag gefallen ist (berechnen Sie WOCHENTAG (0), um dies zu überprüfen).

=B2+MOD(9-B2,7)
Tom McFarlin
quelle
1

Eine generische und elegante Lösung, die für jeden Wochentag (N-Tag) funktioniert:

Zelle B2: Datum, an dem auf den nächsten N-Tag der Woche gewechselt werden soll; Zelle B3: nächster N-Tag der Woche: Mo = 1, Di = 2, ...;

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

Für einen bestimmten Wochentag, in diesem Fall Montag (Tag = 1), kann die Formel "fest codiert" werden

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

Beachten Sie, dass durch Setzen des 2. Parameters des Wochentags auf '2' der Wochentag zurückgegeben wird, weekday(B2,2)der mit dem in der obigen Formel (Zelle B1) verwendeten gewünschten N-Tag übereinstimmt, dh Mon = 1, Di = 2, ...

Baz
quelle
0

Francks Lösung ist perfekt für Montag, funktioniert aber an anderen Tagen nicht (ich habe nur die 2. Formel getestet). Die folgende Formel funktioniert jedoch auch für andere Tage. B2 sei das Datum und B3 der Tag (B3 ist von 1 bis 7, wobei Sonntag 1 ist):

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

Hinweis: Dies wird am nächsten Tag angezeigt, auch wenn B2 der angeforderte Tag ist. Die nächste Formel wird jedoch heute zurückgegeben, wenn B2 der gewünschte Tag ist:

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