
Bendroji formulė
=IF(A1>=start,(MOD(DATEDIF(start,A1,"m")+n,n)=0)*value,0)
Santrauka
Norėdami pakartoti fiksuotą vertę kas 3 mėnesius, galite naudoti formulę, pagrįstą DATEDIF ir MOD funkcijomis. Parodytame pavyzdyje C4 formulė, nukopijuota žemiau, yra:
=IF(B4>=start,(MOD(DATEDIF(start,B4,"m")+n,n)=0)*value,0)
kur „pradžia“ yra pavadintas diapazonas F6, „n“ yra F4, o „vertė“ yra F5.
Paaiškinimas
Pirmas dalykas, kurį daro ši formulė, yra tikrinti datą B stulpelyje pagal pradžios datą:
=IF(B4>=start
Jei data nėra didesnė už pradžios datą, formulė grąžina nulį. Jei data yra didesnė arba lygi pradžios datai, IF funkcija paleidžia šį fragmentą:
(MOD(DATEDIF(start,B4,"m")+n,n)=0)*value
MOD viduje funkcija DATEDIF naudojama norint gauti mėnesių skaičių nuo pradžios datos iki B4 datos. Kai B4 data yra lygi pradžios datai, DATEDIF grąžina nulį. Kitą mėnesį DATEDIF grąžina 1 ir t. T.
Prie šio rezultato pridedame pavadinto diapazono „n“ vertę, kuri pavyzdyje yra 3. Tai veiksmingai pradeda numeravimo modelį nuo 3, o ne nuo nulio.
MOD funkcija naudojama kiekvienai vertei patikrinti, o daliklis yra n:
MOD(DATEDIF(start,B4,"m")+n,n)=0
Jei likusi vertė lygi nuliui, dirbame su mėnesiu, kuriam reikalinga vertė. Užuot įdėję kitą IF funkciją, mes naudojame loginę logiką, kad aukščiau pateiktos išraiškos rezultatas padaugintume iš „value“.
Tais mėnesiais, kai turėtų būti reikšmė, MOD grąžina nulį, išraiška yra TIESA ir vertė grąžinama. Kitais mėnesiais MOD pateikia ne nulinį rezultatą, išraiška yra NETIESA, o vertė priverčiama nuliui.