![](https://cdn.wiki-base.com/8988971/excel_formula_get_last_weekday_in_month__2.png.webp)
Formula generik
=EOMONTH(date,0)+1-WEEKDAY(EOMONTH(date,0)+1-dow)
Ringkasan
Untuk mendapatkan hari minggu terakhir dalam sebulan (iaitu Sabtu terakhir, Jumaat terakhir, Isnin terakhir, dll) anda boleh menggunakan formula berdasarkan fungsi EOMONTH dan WEEKDAY.
Dalam contoh yang ditunjukkan, formula dalam D5 adalah:
=EOMONTH(B5,0)+1-WEEKDAY(EOMONTH(B5,0)+1-C5)
Penjelasan
Pertama, formula ini menentukan hari pertama bulan berikutnya * selepas * tarikh tertentu. Ia melakukan ini dengan menggunakan EOMONTH untuk mendapatkan hari terakhir bulan itu, kemudian menambahkan satu hari:
=EOMONTH(B5,0)+1
Seterusnya, formula menghitung jumlah hari yang diperlukan untuk "kembali" ke hari minggu terakhir yang diminta pada bulan sebelumnya (iaitu bulan tarikh asal):
WEEKDAY(EOMONTH(B5,0)+1-C5)
Di dalam WEEKDAY, EOMONTH sekali lagi digunakan untuk mendapatkan hari pertama bulan berikutnya. Dari tarikh ini, nilai untuk hari dalam seminggu dikurangkan, dan hasilnya dimasukkan ke WEEKDAY, yang mengembalikan bilangan hari untuk dilancarkan kembali.
Terakhir, hari pengembalian dikurangkan dari hari pertama bulan berikutnya, yang memberikan hasil akhir.
Hari minggu yang lain
Dalam bentuk umum formula di bahagian atas halaman, hari dalam seminggu disingkat "dow". Ini adalah nombor antara 1 (Ahad) dan 7 (Sabtu) yang boleh diubah untuk mendapatkan hari dalam seminggu yang berbeza. Contohnya, untuk mendapatkan hari Khamis terakhir dalam sebulan, tetapkan dow hingga 5.
Catatan: Saya menemui formula ini dalam jawapan di forum MrExcel oleh Barry Houdini.