
Formuła ogólna
=SUMPRODUCT(--(WEEKDAY(dates)=day_num))
Podsumowanie
Aby liczyć daty według dni tygodnia (tj. Liczyć poniedziałki, wtorki, środy itp.), Możesz użyć funkcji SUMPRODUCT razem z funkcją WEEKDAY. W pokazanym przykładzie formuła w F4 to:
=SUMPRODUCT(--(WEEKDAY(dates,2)=E4))
Uwaga: „daty” to nazwany zakres B4: B15.
Wyjaśnienie
Możesz się zastanawiać, dlaczego nie używamy COUNTIF ani COUNTIF? Te funkcje wydają się oczywistym rozwiązaniem. Jednak bez dodania kolumny pomocnika, która zawiera wartość dnia tygodnia, nie ma możliwości utworzenia kryterium LICZ.JEŻELI, aby liczyć dni tygodnia w zakresie dat.
Zamiast tego używamy wszechstronnej funkcji SUMPRODUCT, która z wdziękiem obsługuje tablice bez konieczności używania Control + Shift + Enter.
Używamy SUMPRODUCT z tylko jednym argumentem, który składa się z tego wyrażenia:
--(WEEKDAY(dates,2)=E4)
Działając od wewnątrz, funkcja DZIEŃ.TYG jest skonfigurowana z opcjonalnym argumentem 2, który powoduje, że zwraca liczby 1-7 odpowiednio dla dni od poniedziałku do niedzieli. Ułatwia to uporządkowanie dni z numerami w kolumnie E.
Następnie WEEKDAY oblicza każdą datę w nazwanym zakresie „daty” i zwraca liczbę. Rezultatem jest tablica taka:
(1;3;7;1;5;2;7;1;7;5;4;7)
Liczby zwrócone przez WEEKDAY są następnie porównywane z wartością w E4, która wynosi 1:
(1;3;7;1;5;2;7;1;7;5;4;7)=1
Wynikiem jest tablica wartości PRAWDA / FAŁSZ.
(TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE)
SUMPRODUCT działa tylko z liczbami (nie tekstem ani wartościami logicznymi), więc używamy podwójnie ujemnych wartości, aby przekształcić wartości PRAWDA / FAŁSZ na jedynki i zera:
(1;0;0;1;0;0;0;1;0;0;0;0)
Z pojedynczą tablicą do przetworzenia, SUMPRODUCT sumuje elementy i zwraca wynik, 3.
Radzenie sobie z pustymi datami
Jeśli masz puste komórki na liście dat, otrzymasz nieprawidłowe wyniki, ponieważ funkcja WEEKDAY zwróci wynik nawet wtedy, gdy nie ma daty. Aby obsłużyć puste komórki, możesz dostosować formułę w następujący sposób:
=SUMPRODUCT((WEEKDAY(dates,2)=E4)*(dates""))
Mnożenie przez wyrażenie (daty „”) to jeden ze sposobów usunięcia pustych komórek.