Datum/Zeit (1) ->

Anzahl von Wochentagen (z.B. Montage) in einem Zeitraum * (251)
Aufgabe
Du willst wissen, wie oft ein bestimmter Wochentag zwischen einem Ausgangs- und einem Enddatum vorkommt.
Lösung
in A1 steht das Anfangsdatum; - in A2 das Enddatum.
In B1 steht der Name des Wochentages, der gezÄhlt werden soll.

In B2 (Hilfszelle) steht:
=VERGLEICH(B1;{"Montag";"Dienstag";"Mittwoch";"Donnerstag";"Freitag";"Samstag";"Sonntag"};0)
das ist keine Array-Formel: die {geschweiften Klammern} also eingeben.
oder als Array-Formel:
{=VERGLEICH(B1;TEXT(ZEILE(2:8);"tttt");0)}
oder mit Suchen
=SUCHEN(LINKS(B1;2);"#modimidofrsaso")/2

das Ergebnis:
=WENN((A2-A1+1-(B2-WOCHENTAG(A1;2))-WENN(WOCHENTAG(A1;2)>B2;7;0))/7<0;0;AUFRUNDEN((A2-A1+1-(B2-WOCHENTAG(A1;2))-WENN(WOCHENTAG(A1;2)>B2;7;0))/7;0))

Alternative als Array-Formel (in B1 steht die Wochentagszahl 1 bis 7 für Montag bis Sonntag):
=SummenPRODUKT((WOCHENTAG(ZEILE(INDIREKT(A1&":"&A2));2)=B1)*1)

Kurzform von Franz Pölt (die Wochentagszahlen sind dann aber 0 bis 6 für Samstag bis Freitag):
=RUNDEN((REST(A1-B3-1;7)+A2-A1-2)/7;)
Handelt es sich um ein Endergebnis, mit dem nicht weitergerechnet wird, langt formatiert ohne Nachkommastellen:
=(REST(A1-B3-1;7)+A2-A1-2)/7


Ergänzung:
Sollen nur die Wochentage des Monats in A1 gezÄhlt werden (also immer Monatserster bis Monatsletzter):
=SummenPRODUKT((WOCHENTAG(A1-TAG(A1)+ZEILE(INDIREKT("1:"&32-TAG(A1-TAG(A1)+32)));2)=B1)*1)

Kurzform (0-6 = Sa-Fr):
=RUNDEN((REST(A1-TAG(A1)-B1;7)+29-TAG(A1+32-TAG(A1)))/7;)
Die Formatierung funktioniert hier natürlich auch.



Erläuterung
Bei der Array-Alternative ist bis Excel-2003 am 05.06.2079 Sense.
Die Zeilenzahl wird ja als Platzhalter verwendet und 65.536 ist die maximale Zeilenzahl; - formatiert als Datum ergibt sich obige Datumsgrenze.
Danach, mit 2^20 Zeilen geht's bis zum 25.11.4770

zurück


gestaltet by Biene Maya