
Formuła ogólna
=SUMPRODUCT((WEEKDAY(dates)=day_num)*values)
Podsumowanie
Aby podsumować dane według dni tygodnia (tj. Sumować według poniedziałków, wtorków, środy itp.), Można użyć funkcji SUMPRODUCT razem z funkcją WEEKDAY.
W pokazanym przykładzie formuła w H4 to:
=SUMPRODUCT((WEEKDAY(dates,2)=G4)*amts)
Wyjaśnienie
Możesz się zastanawiać, dlaczego nie używamy funkcji SUMA.JEŻELI lub SUMA.WARUNKÓW? Wydaje się, że jest to oczywisty sposób na podsumowanie według dni tygodnia. Jednak bez dodania kolumny pomocnika z wartością dnia tygodnia nie ma możliwości utworzenia kryteriów SUMA.JEŻELI, które uwzględniają dzień tygodnia.
Zamiast tego używamy przydatnej 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)=G4)*amts
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. Nie jest to konieczne, ale ułatwia porządkowanie dni i wybieranie liczb w kolumnie G w kolejności.
WEEKDAY oblicza każdą wartość w nazwanym zakresie „daty” i zwraca liczbę. Rezultatem jest tablica taka:
(3; 5; 3; 1; 2; 2; 4; 2)
Liczby zwrócone przez WEEKDAY są następnie porównywane z wartością w G4, która wynosi 1.
(3; 5; 3; 1; 2; 2; 4; 2) = 1
Wynikiem jest tablica wartości PRAWDA / FAŁSZ.
(FALSE; FALSE; FALSE; TRUE; FALSE; FALSE; FALSE; FALSE)
Następnie tablica ta jest mnożona przez wartości z nazwanego zakresu „amts”. SUMPRODUCT działa tylko z liczbami (nie tekstem ani wartościami logicznymi), ale operacje matematyczne automatycznie przekształcają wartości PRAWDA / FAŁSZ na jedynki i zera, więc mamy:
(0; 0; 0; 1; 0; 0; 0; 0) * (100; 250; 75; 275; 250; 100; 300; 125)
Co daje:
(0; 0; 0; 275; 0; 0; 0; 0)
Mając tylko tę pojedynczą tablicę do przetworzenia, SUMPRODUCT sumuje elementy i zwraca wynik.