
Formula generică
=IF(A1>=start,(MOD(DATEDIF(start,A1,"m")+n,n)=0)*value,0)
rezumat
Pentru a repeta o valoare fixă la fiecare 3 luni, puteți utiliza o formulă bazată pe funcțiile DATEDIF și MOD. În exemplul prezentat, formula din C4, copiată, este:
=IF(B4>=start,(MOD(DATEDIF(start,B4,"m")+n,n)=0)*value,0)
unde „start” este intervalul numit F6, „n” este F4, iar „valoare” este F5.
Explicaţie
Primul lucru pe care îl face această formulă este să verificați data din coloana B față de data de începere:
=IF(B4>=start
Dacă data nu este mai mare decât data de începere, formula returnează zero. Dacă data este mai mare sau egală cu data de începere, funcția IF rulează acest fragment:
(MOD(DATEDIF(start,B4,"m")+n,n)=0)*value
În MOD, funcția DATEDIF este utilizată pentru a obține numărul de luni dintre data de începere și data din B4. Când data din B4 este egală cu data de începere, DATEDIF returnează zero. În luna următoare, DATEDIF returnează 1 și așa mai departe.
La acest rezultat, adăugăm valoarea pentru intervalul numit „n”, care este 3 în exemplu. Aceasta începe efectiv modelul de numerotare la 3 în loc de zero.
Funcția MOD este utilizată pentru a verifica fiecare valoare, cu n ca divizor:
MOD(DATEDIF(start,B4,"m")+n,n)=0
Dacă restul este zero, lucrăm cu o lună care necesită o valoare. În loc să cuibărim o altă funcție IF, folosim logica booleană pentru a multiplica rezultatul expresiei de mai sus cu „valoare”.
În lunile în care ar trebui să existe o valoare, MOD returnează zero, expresia este TRUE și valoarea este returnată. În alte luni, MOD returnează un rezultat diferit de zero, expresia este FALSĂ și valoarea este forțată la zero.