Wochentage im Monat (Microsoft Excel)
Haben Sie sich jemals gefragt, wie viele eines bestimmten Wochentags innerhalb eines bestimmten Monats auftreten?
Für manche Menschen ist es wichtig zu wissen, wie viele Dienstage es in einem Monat gibt. Und wer möchte nicht wissen, ob ein bestimmter Monat vier oder fünf Samstage hat?
Excel enthält keine intrinsische Funktion, mit der Sie bestimmen können, wie oft ein bestimmter Wochentag innerhalb eines bestimmten Monats auftritt. Sie können jedoch Ihre eigenen Formeln und Funktionen erstellen, um die Aufgabe auszuführen.
Betrachten Sie zunächst die folgende Formel.
=4+N((WEEKDAY(DATE(YEAR($A$1),MONTH($A$1),1))) (DAY(DATE(YEAR($A$1),MONTH($A$1)+1,0))-28)>(7*(( WEEKDAY(DATE(YEAR($A$1),MONTH($A$1),1)))>(1+ROW()- ROW($A$2)))+(1+ROW()-ROW($A$2))))
Die Formel basiert auf einem Datum in A1. Dieses Datum sollte aus dem Monat stammen, den Sie „getestet“ haben möchten. Die Formel soll in eine Zelle in Zeile 2 und dann in die sechs Zellen direkt darunter kopiert werden. Sie können diese Formel beispielsweise in den Zellenbereich B2: B8 kopieren. Die erste Antwort (B2) ist die Anzahl der Sonntage im Monat, die zweite (B3) die Anzahl der Montage und so weiter.
Der Nachteil dieser Formel besteht darin, dass die Position der Zelle, die die Formel enthält, als Teil der Formel verwendet wird. Dies bedeutet, dass die Formel irgendwo beginnend in der zweiten Zeile platziert werden muss.
Ein weiterer Nachteil ist, dass die Formel ziemlich lang und komplex ist. Wenn Sie eine kürzere Formel wünschen, müssen Sie sich einer Array-Formel zuwenden. Eine praktische Formel, die Sie verwenden können, setzt voraus, dass Sie drei Argumente angeben: das Jahr (Zelle C2), den Monat (Zelle D2) und einen Wochentag (Zelle E2). Mit diesen drei Elementen funktioniert die folgende Formel hervorragend:
=SUM(IF(WEEKDAY(DATE(C2, D2, ROW(INDIRECT("1:" & DAY(DATE(C2, D2+1, 0))))))=E2, 1, 0))
Denken Sie daran, dass dies eine Array-Formel ist. Dies bedeutet, dass Sie sie durch Drücken von Umschalt + Strg + Eingabetaste eingeben müssen. Außerdem muss der Wochentagswert, den Sie in Zelle E2 eingeben, im Bereich von 1 bis 7 liegen, wobei 1 Sonntag, 2 Montag usw. ist.
Ein anderer Ansatz – dieser basiert nicht auf einer Array-Formel – besteht darin, das Datum in Zelle A1 für jeden gewünschten Wochentag zu testen, wie in E2 angegeben.
(Wieder ein Wert von 1 bis 7, wie im vorherigen Beispiel.)
=IF(MONTH(DATE(YEAR(A1),MONTH(A1),1)-WEEKDAY(DATE(YEAR(A1),MONTH(A1),1)-E2)+35)=MONTH(A1),5,4)
Die Formel prüft grundsätzlich, ob es im Monat eines beliebigen Wochentags, den Sie prüfen, eine fünfte Instanz gibt. Wenn dies der Fall ist, wird der Wert 5 zurückgegeben. Wenn nicht, wird der Wert 4 zurückgegeben. (Die Formel geht zu Recht davon aus, dass es an einem bestimmten Wochentag nur 4 oder 5 Instanzen geben kann – niemals weniger und niemals mehr.)
Makrobasierte Lösungen sind ebenfalls verfügbar. Eine solche Lösung folgt:
Function MonthWeekDays(dDate As Date, iWeekDay As Integer) Dim dLoop As Date If iWeekDay < 1 Or iWeekDay > 7 Then MonthWeekDays = CVErr(xlErrNum) Exit Function End If MonthWeekDays = 0 dLoop = DateSerial(Year(dDate), Month(dDate), 1) Do While Month(dLoop) = Month(dDate) If WeekDay(dLoop) = iWeekDay Then _ MonthWeekDays = MonthWeekDays + 1 dLoop = dLoop + 1 Loop End Function
Sie verwenden die Funktion, indem Sie Folgendes in eine Zelle eingeben:
=MonthWeekDays(A1,4)
In dieser Verwendung enthält das erste Argument (Zelle A1) ein Datum im zu bewertenden Monat. Das zweite Argument ist ein numerischer Wert, der den Wochentag darstellt, den Sie zählen möchten. Dieser Wert muss im Bereich von 1 bis 7 liegen, wobei 1 Sonntag, 2 Montag usw. ist.
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (2183) gilt für Microsoft Excel 97, 2000, 2002 und 2003. Eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Excel (Excel 2007 und höher) finden Sie hier: