Yleinen kaava
=SUMPRODUCT((WEEKDAY(dates)=day_num)*values)
Yhteenveto
Yhteenvetona tiedot arkipäivittäin (eli summa maanantaisin, tiistaisin, keskiviikkoisin jne.), Voit käyttää SUMPRODUCT-toimintoa yhdessä WEEKDAY-toiminnon kanssa.
Esitetyssä esimerkissä H4: n kaava on:
=SUMPRODUCT((WEEKDAY(dates,2)=G4)*amts)
Selitys
Saatat ihmetellä, miksi emme käytä SUMIF- tai SUMIFS-toimintoa? Nämä näyttävät olevan ilmeinen tapa laskea yhteen viikonpäivillä. Ilman apupalstaa, jolla on viikonpäiväarvo, ei kuitenkaan voida luoda SUMIF-kriteerejä, joissa otetaan huomioon viikonpäivä.
Sen sijaan käytämme kätevää SUMPRODUCT-toimintoa, joka käsittelee taulukoita sulavasti ilman, että tarvitsee käyttää Control + Vaihto + Enter.
Käytämme SUMPRODUCTia vain yhdellä argumentilla, joka koostuu tästä lausekkeesta:
(WEEKDAY(dates,2)=G4)*amts
Työskentely sisältä ulospäin, WEEKDAY-toiminto on määritetty valinnaisella argumentilla 2, joka saa sen palauttamaan numerot 1-7 vastaavasti maanantaista sunnuntaihin. Tämä ei ole välttämätöntä, mutta se helpottaa järjestettyjen päivien luetteloimista ja sarakkeessa G olevien numeroiden noutamista peräkkäin.
WEEKDAY arvioi kaikki nimetyn alueen "päivämäärät" arvot ja palauttaa luvun. Tuloksena on tällainen taulukko:
(3; 5; 3; 1; 2; 2; 4; 2)
WEEKDAYn palauttamia lukuja verrataan sitten G4: n arvoon, joka on 1.
(3; 5; 3; 1; 2; 2; 4; 2) = 1
Tuloksena on joukko TOSI / EPÄTOSI arvoja.
(EPÄTOSI; EPÄTOSI; EPÄTOSI; TOSI; EPÄTOSI; EPÄTOSI; EPÄTOSI; EPÄTOSI)
Seuraavaksi tämä taulukko kerrotaan nimellisen alueen "amts" arvoilla. SUMPRODUCT toimii vain numeroiden (ei teksti- tai boolean-numeroiden) kanssa, mutta matemaattiset operaatiot pakottavat TOSI / EPÄTOSI-arvot automaattisesti nollille, joten meillä on:
(0; 0; 0; 1; 0; 0; 0; 0) * (100; 250; 75; 275; 250; 100; 300; 125)
Mikä tuottaa:
(0; 0; 0; 275; 0; 0; 0; 0)
Kun tämä yksi taulukko on käsiteltävissä, SUMPRODUCT summaa kohteet ja palauttaa tuloksen.