Ini harus berfungsi kapan saja, kapan saja, di versi Excel apa pun hingga tahun 2078 (lebih lama di Excel 2007 atau lebih baru).
=SUM(IF(DAY(ROW(OFFSET($A$1,TODAY(),0,DATE(YEAR(TODAY()),12,31)-TODAY()+1)))={1,16},1,0))
Catatan Saya memeriksa hari = 1 atau 16 dengan offset 1 hari (idenya adalah untuk menyiasati nilai DAY()
akhir bulan yang bervariasi).
{Rumus array... Tekan Ctrl+Shift+Enter
untuk melakukan}
[tambahan]
Jika Anda tidak ingin memasukkan hari ini (misalnya, hari ini tanggal 15 Agustus), gunakan ini sebagai gantinya:
=SUM(IF(DAY(ROW(OFFSET($A$1,TODAY()+1,0,DATE(YEAR(TODAY()),12,31)-TODAY()+1)))={1,16},1,0))
hal. Saya menguji semua tanggal mulai hari ini hingga hari kabisat 2016 dan seterusnya dan hasilnya berhasil. Yang dilakukan hanyalah menguji nomor baris yang diperlakukan sebagai serial tanggal dengan fungsi DAY()
untuk melihat apakah nomor tersebut 1 atau 16, tetapi serial tersebut diimbangi dengan +1 sehingga benar-benar memeriksa apakah DAY()
adalah [hari terakhir bulan apa pun] atau 15. Jika hasilnya benar, tambahkan 1, jika tidak tambahkan 0.
[tambahan lainnya]
Berikut adalah versi non-array yang berfungsi dengan cara yang sama:
Termasuk hari ini:
=SUMPRODUCT(N(DAY(ROW(OFFSET($A$1,TODAY(),0,DATE(YEAR(TODAY()),12,31)-TODAY()+1)))={1,16}))
Tidak termasuk hari ini
=SUMPRODUCT(N(DAY(ROW(OFFSET($A$1,TODAY(),0,DATE(YEAR(TODAY()),12,31)-TODAY()+1)))={1,16}))
person
andy holaday
schedule
08.08.2012