Um Wochentage (Montag, Freitag, Sonntag usw.) zwischen zwei Datumsangaben zu zählen, können Sie eine Matrixformel verwenden, die mehrere Funktionen verwendet: SUMMENPRODUKT, WOCHENTAG, ZEILE und INDIREKT. Im gezeigten Beispiel lautet die Formel in Zelle E6
= SUMPRODUCT (--( WEEKDAY ( ROW ( INDIRECT (start&':'&end)))=dow))
In der generischen Version der Formel Anfang = Startdatum, Ende = Enddatum und dow = Wochentag.
wie man den ursprünglichen Preis vor dem Rabatt findetErläuterung
Im Kern verwendet diese Formel die WOCHENTAG-Funktion um eine Reihe von Daten zu testen, um zu sehen, ob sie an einem bestimmten Wochentag (dow) landen und die SUMMENPRODUKT-Funktion die Summe zusammenzuzählen.
Bei Angabe eines Datums gibt WEEKDAY einfach eine Zahl zwischen 1 und 7 zurück, die einem bestimmten Wochentag entspricht. Mit Standardeinstellungen 1 = Sonntag und 7 = Samstag. Also 2 = Montag, 6 = Freitag und so weiter.
Der Trick bei dieser Formel ist zu verstehen, dass Daten in Excel sind nur Seriennummern die am 1. Januar 1900 beginnen. Der 1. Januar 2016 hat beispielsweise die Seriennummer 42370 und der 8. Januar ist 42377. Datumsangaben in Excel sehen nur dann wie Datumsangaben aus, wenn ein Datumszahlenformat angewendet wird.
Was passiert in einer ungefähren Übereinstimmungs-Lookup-Funktion, wenn der Wert größer ist?
Es stellt sich also die Frage - wie kann man ein . konstruieren? Array von Daten, die Sie in die Funktion WEEKDAY eingeben können, um die entsprechenden Wochentage zu ermitteln?
Die Antwort ist zu verwenden REIHE mit INDIREKT funktioniert so:
= SUMPRODUCT (--( WEEKDAY ( ROW ( INDIRECT (B6&':'&C6)))=D6))
INDIRECT ermöglicht die Interpretation der verketteten Daten '42370:42377' als Zeilennummern. Dann gibt die ROW-Funktion ein Array wie folgt zurück:
ROW ( INDIRECT (date1&':'&date2))
Die Funktion WEEKDAY wertet diese Zahlen aus als Termine und gibt dieses Array zurück:
{4237042371423724237342374423754237642377}
die gegen den angegebenen Wochentag getestet wird (hier 6 ab D6). Sobald die Ergebnisse des Tests mit dem doppelten Bindestrich in 1s und 0s umgewandelt wurden, wird dieses Array von SUMPRODUCT verarbeitet:
{67123456}
Was gibt 2.
Mit SEQUENZ
Mit dem neuen SEQUENCE-Funktion , kann diese Formel etwa so vereinfacht werden:
wie man Streudiagramme ausgezeichnet macht
{10000001}
In dieser Version verwenden wir SEQUENCE, um das Array von Daten direkt zu generieren, ohne dass INDIRECT oder ROW erforderlich sind.
Dynamische Array-Formeln sind erhältlich in Büro 365 nur. Autor Dave Bruns