
Yleinen kaava
=IF(A1>=start,(MOD(DATEDIF(start,A1,"m")+n,n)=0)*value,0)
Yhteenveto
Jos haluat toistaa kiinteän arvon 3 kuukauden välein, voit käyttää DATEDIF- ja MOD-funktioihin perustuvaa kaavaa. Esitetyssä esimerkissä C4: n kaava, kopioitu alaspäin, on:
=IF(B4>=start,(MOD(DATEDIF(start,B4,"m")+n,n)=0)*value,0)
missä "start" on nimetty alue F6, "n" on F4 ja "arvo" on F5.
Selitys
Ensimmäinen asia, jonka tämä kaava tekee, on tarkistaa sarakkeessa B oleva päivämäärä alkamispäivää vastaan:
=IF(B4>=start
Jos päivämäärä ei ole suurempi kuin aloituspäivä, kaava palauttaa nollan. Jos päivämäärä on suurempi tai yhtä suuri kuin alkamispäivä, IF-funktio suorittaa tämän koodinpätkän:
(MOD(DATEDIF(start,B4,"m")+n,n)=0)*value
MOD: n sisällä DATEDIF-funktiota käytetään kuukausien lukumäärän alkamispäivän ja päivämäärän välillä B4: ssä. Kun kohdassa B4 oleva päivämäärä on yhtä suuri kuin alkamispäivä, DATEDIF palauttaa nollan. Seuraavana kuukautena DATEDIF palauttaa arvon 1 ja niin edelleen.
Tähän tulokseen lisätään nimetyn alueen "n" arvo, joka on 3 esimerkissä. Tämä tosiasiallisesti aloittaa numerointikuvion 3: sta nollan sijasta.
MOD-toimintoa käytetään tarkistamaan kukin arvo, jakajana n:
MOD(DATEDIF(start,B4,"m")+n,n)=0
Jos loppuosa on nolla, työskentelemme kuukauden kanssa, joka vaatii arvon. Sen sijaan, että sisäkkäisimme toisen IF-funktion, käytämme loogista logiikkaa kertomaan yllä olevan lausekkeen tulos "arvolla".
Kuukausina, jolloin arvon pitäisi olla, MOD palauttaa nollan, lauseke on TOSI ja arvo palautetaan. Muina kuukausina MOD palauttaa nollasta poikkeavan tuloksen, lauseke on EPÄTOSI ja arvo pakotetaan nollaan.