Christine braucht eine Möglichkeit, den ersten Dienstag eines bestimmten Monats zu berechnen.

Angesichts eines Monats und eines Jahres muss sie das Datum dieses ersten Dienstags ermitteln.

Es gibt einige verschiedene Formeln, mit denen Sie das gewünschte Ergebnis erzielen können. Die meisten Ansätze verwenden die WEEKDAY-Funktion auf irgendeine Weise, da sie einen numerischen Wert zurückgeben kann, der den Wochentag für ein bestimmtes Datum darstellt. Angenommen, Sie geben einen Monat in Zelle A1 (1 bis 12) und ein vierstelliges Jahr in Zelle A2 ein, dann geben die folgenden Formeln alle ein Datum für den ersten Dienstag im Monat zurück. (Ich habe die Formeln in der Reihenfolge ihrer Länge angeordnet, vom längsten zum kürzesten.)

=DATE(A2,A1,1)+IF(WEEKDAY(DATE(A2,A1,1))=3,0,IF(WEEKDAY(DATE(A2,A1,1))>3,7-WEEKDAY(DATE(A2,A1,1))+3,3-WEEKDAY(DATE(A2,A1,1))))

=IF(3-WEEKDAY(DATE(A2,A1,1))>=0,DATE(A2,A1,1)+3-WEEKDAY(DATE(A2,A1,1)),DATE(A2,A1,1)+7+3-WEEKDAY(DATE(A2,A1,1)))

=DATE(A2,A1,1)+IF(3-WEEKDAY(DATE(A2,A1,1))>=0,3-WEEKDAY(DATE(A2,A1,1)),10-WEEKDAY(DATE(A2,A1,1)))

=DATE(A2,A1,1)-WEEKDAY(DATE(A2,A1,1),1)+3+IF(WEEKDAY(DATE(A2,A1,1),1)>3,7,0)

=DATE(A2,A1,1)+8-DAY(DATE(A2,A1,1))-WEEKDAY(DATE(A2,A1,1)-DAY(DATE(A2,A1,1))-2)

=DATE(A2,A1,1)+3-WEEKDAY(DATE(A2,A1,1))+(1-(3>=WEEKDAY(DATE(A2,A1,1))))*7 =DATEVALUE(A2&"/"&A1&"/1")+MOD(10-WEEKDAY(DATEVALUE(A2&"/"&A1&"/1")),7)

=DATE(A2,A1,MATCH(TRUE,WEEKDAY(DATE(A2,A1,{1,2,3,4,5,6,7}))=3,0))

=DATE(A2,A1,MOD(10-WEEKDAY(DATE(A2,A1,1)),7)+1)

=DATE(A2,A1,1)+MOD(3-WEEKDAY(DATE(A2,A1,1)),7)

=DATE(A2,A1,1)+7-WEEKDAY(DATE(A2,A1,1),13)

=DATE(A2,A1,8-WEEKDAY(DATE(A2,A1,1),13))

=DATE(A2,A1,7)-MOD(DATE(A2,A1,7)-3,7)

=DATE(A2,A1,8-WEEKDAY(DATE(A2,A1,5)))

=DATE(A2,A1,8)-WEEKDAY(DATE(A2,A1,5))

Wenn Sie es bequemer finden, ein Datum innerhalb des Monats anzugeben, den Sie auswerten möchten, können Sie die Formeln ändern, um dies zu berücksichtigen. Das Folgende sind nur einige Formeln, die Sie verwenden können, wenn Sie ein tatsächliches Datum in Zelle A1 eingeben:

=DATE(YEAR(A1),MONTH(A1),MATCH(TRUE,WEEKDAY(DATE(YEAR(A1),MONTH(A1),{1,2,3,4,5,6,7}))=3,0))

=DATE(YEAR(A1),MONTH(A1),MOD(10-WEEKDAY(DATE(YEAR(A1),MONTH(A1),1)),7)+1)

=DATE(YEAR(A1),MONTH(A1),1)+MOD(3-WEEKDAY(DATE(YEAR(A1),MONTH(A1),1)),7)

=DATE(YEAR(A1),MONTH(A1),1)+7-WEEKDAY(DATE(YEAR(A1),MONTH(A1),1),13)

=DATE(YEAR(A1),MONTH(A1),8-WEEKDAY(DATE(YEAR(A1),MONTH(A1),1),13))

=DATE(YEAR(A1),MONTH(A1),7)-MOD(DATE(YEAR(A1),MONTH(A1),7)-3,7)

=DATE(YEAR(A1),MONTH(A1),8-WEEKDAY(DATE(YEAR(A1),MONTH(A1),5)))

=DATE(YEAR(A1),MONTH(A1),8)-WEEKDAY(DATE(YEAR(A1),MONTH(A1),5))

=A1-DAY(A1)+7-WEEKDAY(A1-DAY(A1)-1,3)

Schließlich möchten Sie möglicherweise einen makrobasierten Ansatz in Betracht ziehen. Das Folgende ist eine benutzerdefinierte Funktion, die den ersten Dienstag schnell herausfindet:

Function FirstTuesday(M As Integer, Y As Integer) As Date     Dim dResult As Date

dResult = DateSerial(Y, M, 1)

Do While Weekday(dResult) <> vbTuesday         dResult = DateAdd("d", 1, dResult)

Loop     FirstTuesday = dResult End Function

Alles, was Sie in Ihrem Arbeitsblatt tun müssen, ist, der benutzerdefinierten Funktion den gewünschten numerischen Monat und das gewünschte Jahr zu übergeben:

=FirstTuesday(6,2018)

Wenn Sie möchten, können Sie angeben, dass sich Monat und Jahr in einer Zelle befinden:

=FirstTuesday(A2,A1)

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (13540) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365.