
Formula generik
=IF(A1>=start,(MOD(DATEDIF(start,A1,"m")+n,n)=0)*value,0)
Ringkasan
Untuk mengulang nilai tetap setiap 3 bulan, anda boleh menggunakan formula berdasarkan fungsi DATEDIF dan MOD. Dalam contoh yang ditunjukkan, formula di C4, disalin ke bawah, adalah:
=IF(B4>=start,(MOD(DATEDIF(start,B4,"m")+n,n)=0)*value,0)
di mana "mula" adalah julat bernama F6, "n" adalah F4, dan "nilai" adalah F5.
Penjelasan
Perkara pertama yang dibuat oleh formula ini ialah menyemak tarikh di lajur B berbanding tarikh mula:
=IF(B4>=start
Sekiranya tarikhnya tidak lebih besar daripada tarikh mula, formula mengembalikan sifar. Sekiranya tarikh lebih besar daripada atau sama dengan tarikh mula, fungsi IF menjalankan coretan ini:
(MOD(DATEDIF(start,B4,"m")+n,n)=0)*value
Di dalam MOD, fungsi DATEDIF digunakan untuk mendapatkan bilangan bulan antara tarikh mula dan tarikh di B4. Apabila tarikh di B4 sama dengan tarikh mula, DATEDIF mengembalikan sifar. Pada bulan berikutnya, DATEDIF mengembalikan 1, dan seterusnya.
Untuk hasil ini, kami menambah nilai untuk julat bernama "n", yang merupakan 3 dalam contoh. Ini dengan berkesan memulakan corak penomboran pada 3 dan bukannya sifar.
Fungsi MOD digunakan untuk memeriksa setiap nilai, dengan n sebagai pembahagi:
MOD(DATEDIF(start,B4,"m")+n,n)=0
Sekiranya selebihnya adalah sifar, kami bekerja dengan sebulan yang memerlukan nilai. Daripada meletakkan fungsi IF lain, kami menggunakan logik boolean untuk mengalikan hasil ungkapan di atas dengan "nilai".
Dalam bulan-bulan di mana seharusnya ada nilai, MOD mengembalikan sifar, ungkapan itu BENAR, dan nilai dikembalikan. Pada bulan-bulan lain, MOD mengembalikan hasil bukan sifar, ungkapannya SALAH, dan nilainya dipaksa menjadi sifar.