Generička formula
=SUMPRODUCT((WEEKDAY(dates)=day_num)*values)
Sažetak
Da biste zbrojili podatke prema radnim danima (tj. Zbroju prema ponedjeljku, utorku, srijedi itd.), Možete koristiti funkciju SUMPRODUCT zajedno s funkcijom WEEKDAY.
U prikazanom primjeru formula u H4 je:
=SUMPRODUCT((WEEKDAY(dates,2)=G4)*amts)
Obrazloženje
Možda se pitate zašto ne koristimo funkciju SUMIF ili SUMIFS? Čini se da su to očit način zbrajanja po danima u tjednu. Međutim, bez dodavanja pomoćnog stupca s vrijednošću dana u tjednu, ne postoji način za stvaranje kriterija za SUMIF koji uzima u obzir dan u danu.
Umjesto toga koristimo praktičnu funkciju SUMPRODUCT koja graciozno rukuje nizovima bez potrebe za upotrebom Control + Shift + Enter.
SUMPRODUCT koristimo sa samo jednim argumentom, koji se sastoji od ovog izraza:
(WEEKDAY(dates,2)=G4)*amts
Radeći iznutra prema van, funkcija WEEKDAY konfigurirana je s neobaveznim argumentom 2, zbog čega vraća brojeve 1-7 za dane ponedjeljak-nedjelja. To nije potrebno, ali olakšava popis dana po redoslijedu i redoslijed pobiranja brojeva u stupcu G.
WEEKDAY procjenjuje svaku vrijednost u imenovanom rasponu "date" i vraća broj. Rezultat je niz poput ovog:
(3; 5; 3; 1; 2; 2; 4; 2)
Brojevi koje je vratio WEEKDAY zatim se uspoređuju s vrijednošću u G4, koja je 1.
(3; 5; 3; 1; 2; 2; 4; 2) = 1
Rezultat je niz TRUE / FALSE vrijednosti.
(NETOČNO; NETOČNO; NETOČNO; ISTINITO; NETOČNO; NETOČNO; NETOČNO; NETOČNO)
Zatim se ovaj niz pomnoži s vrijednostima u imenovanom rasponu "amts". SUMPRODUCT radi samo s brojevima (ne s tekstom ili logičkim vrijednostima), ali matematičke operacije automatski prisiljavaju vrijednosti TRUE / FALSE na nečije i nule, tako da imamo:
(0; 0; 0; 1; 0; 0; 0; 0) * (100; 250; 75; 275; 250; 100; 300; 125)
Što daje:
(0; 0; 0; 275; 0; 0; 0; 0)
Sa samo ovim jednim nizom za obradu, SUMPRODUCT zbraja stavke i vraća rezultat.