
Formuła ogólna
=IF(A1>=start,(MOD(DATEDIF(start,A1,"m")+n,n)=0)*value,0)
Podsumowanie
Aby powtarzać stałą wartość co 3 miesiące, możesz użyć formuły opartej na funkcjach DATEDIF i MOD. W pokazanym przykładzie formuła w C4, skopiowana w dół, to:
=IF(B4>=start,(MOD(DATEDIF(start,B4,"m")+n,n)=0)*value,0)
gdzie „start” to nazwany zakres F6, „n” to F4, a „wartość” to F5.
Wyjaśnienie
Pierwszą rzeczą, jaką wykonuje ta formuła, jest porównanie daty w kolumnie B z datą początkową:
=IF(B4>=start
Jeśli data nie jest większa niż data początkowa, formuła zwraca zero. Jeśli data jest większa lub równa dacie początkowej, funkcja JEŻELI uruchamia ten fragment:
(MOD(DATEDIF(start,B4,"m")+n,n)=0)*value
W MOD, funkcja DATEDIF służy do pobierania liczby miesięcy między datą początkową a datą w B4. Gdy data w B4 jest równa dacie rozpoczęcia, DATEDIF zwraca zero. W następnym miesiącu DATEDIF zwraca 1 i tak dalej.
Do tego wyniku dodajemy wartość dla nazwanego zakresu „n”, który w przykładzie wynosi 3. To skutecznie rozpoczyna numerację od 3 zamiast od zera.
Funkcja MOD służy do sprawdzania każdej wartości, gdzie n jest dzielnikiem:
MOD(DATEDIF(start,B4,"m")+n,n)=0
Jeśli reszta wynosi zero, pracujemy z miesiącem, który wymaga wartości. Zamiast zagnieżdżać inną funkcję JEŻELI, używamy logiki boolowskiej, aby pomnożyć wynik powyższego wyrażenia przez „wartość”.
W miesiącach, w których powinna istnieć wartość, funkcja MOD zwraca zero, wyrażenie to PRAWDA i zwracana jest wartość. W innych miesiącach MOD zwraca wynik niezerowy, wyrażenie to FAŁSZ, a wartość jest wymuszana na zero.