Excel-kaava: Laske päivämäärät viikonpäivän mukaan -

Yleinen kaava

=SUMPRODUCT(--(WEEKDAY(dates)=day_num))

Yhteenveto

Voit laskea päivämäärät arkipäivittäin (eli laskea maanantaisin, tiistaisin, keskiviikkoisin jne.) Käyttämällä SUMPRODUCT-toimintoa yhdessä WEEKDAY-toiminnon kanssa. Esitetyssä esimerkissä F4: n kaava on:

=SUMPRODUCT(--(WEEKDAY(dates,2)=E4))

Huomaa: "päivämäärät" on nimetty alue B4: B15.

Selitys

Saatat ihmetellä, miksi emme käytä COUNTIF- tai COUNTIF-tunnuksia? Nämä toiminnot vaikuttavat ilmeiseltä ratkaisulta. Ei kuitenkaan ole mitään tapaa luoda ehtoja COUNTIF: lle viikonpäivien laskemiseksi tietyllä aikavälillä lisäämättä avustajasaraketta, joka sisältää viikonpäivän arvon.

Sen sijaan käytämme monipuolista 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)=E4)

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ä helpottaa päivien luetteloa järjestyksessä sarakkeen E numeroilla peräkkäin.

WEEKDAY arvioi sitten jokaisen päivämäärän nimellisellä alueella "päivämäärät" ja palauttaa luvun. Tuloksena on tällainen taulukko:

(1;3;7;1;5;2;7;1;7;5;4;7)

WEEKDAYn palauttamia numeroita verrataan sitten E4: n arvoon, joka on 1:

(1;3;7;1;5;2;7;1;7;5;4;7)=1

Tuloksena on joukko TOSI / EPÄTOSI arvoja.

(TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE)

SUMPRODUCT toimii vain numeroiden (ei teksti- tai boolean-numeroiden) kanssa, joten käytämme kaksois-negatiivista TOSI / EPÄTOSI-arvojen pakottamiseen yhteen ja nolliin:

(1;0;0;1;0;0;0;1;0;0;0;0)

Yhdellä prosessoitavalla taulukolla SUMPRODUCT summaa kohteet ja palauttaa tuloksen 3.

Tyhjien päivämäärien käsittely

Jos päivämääräluettelossa on tyhjiä soluja, saat virheellisiä tuloksia, koska WEEKDAY-toiminto palauttaa tuloksen silloinkin, kun päivämäärää ei ole. Tyhjien solujen käsittelemiseksi voit säätää kaavaa seuraavasti:

=SUMPRODUCT((WEEKDAY(dates,2)=E4)*(dates""))

Kertominen lausekkeella (päivämäärät "") on yksi tapa peruuttaa tyhjät solut.

Mielenkiintoisia artikkeleita...