
Genel formül
=IF(A1>=start,(MOD(DATEDIF(start,A1,"m")+n,n)=0)*value,0)
Özet
Sabit bir değeri her 3 ayda bir tekrarlamak için, DATEDIF ve MOD işlevlerine dayalı bir formül kullanabilirsiniz. Gösterilen örnekte, C4'te kopyalanan formül şudur:
=IF(B4>=start,(MOD(DATEDIF(start,B4,"m")+n,n)=0)*value,0)
burada "başlangıç" F6 adlandırılmış aralıktır, "n" F4'tür ve "değer" F5'tir.
Açıklama
Bu formülün yaptığı ilk şey, B sütunundaki tarihi başlangıç tarihine göre kontrol etmektir:
=IF(B4>=start
Tarih başlangıç tarihinden büyük değilse formül sıfır verir. Tarih başlangıç tarihinden büyükse veya bu tarihe eşitse, IF işlevi şu kod parçacığını çalıştırır:
(MOD(DATEDIF(start,B4,"m")+n,n)=0)*value
MOD içinde, DATEDIF işlevi, B4'teki başlangıç tarihi ile tarih arasındaki ay sayısını elde etmek için kullanılır. B4'teki tarih başlangıç tarihine eşit olduğunda, DATEDIF sıfır döndürür. Sonraki ay, DATEDIF 1 değerini döndürür ve bu böyle devam eder.
Bu sonuca, örnekte 3 olan "n" adlı aralığın değerini ekliyoruz. Bu, numaralandırma modelini etkili bir şekilde sıfır yerine 3'te başlatır.
MOD işlevi, bölen olarak n ile her bir değeri kontrol etmek için kullanılır:
MOD(DATEDIF(start,B4,"m")+n,n)=0
Kalan sıfırsa, değer gerektiren bir ay ile çalışıyoruz. Başka bir EĞER işlevini iç içe yerleştirmek yerine, yukarıdaki ifadenin sonucunu "değer" ile çarpmak için boole mantığını kullanırız.
Değer olması gereken aylarda MOD sıfır döndürür, ifade TRUE olur ve değer döndürülür. Diğer aylarda, MOD sıfır olmayan bir sonuç verir, ifade YANLIŞ'tır ve değer sıfıra zorlanır.