Formula Excel: Hitung tarikh mengikut hari dalam seminggu -

Formula generik

=SUMPRODUCT(--(WEEKDAY(dates)=day_num))

Ringkasan

Untuk mengira tarikh pada hari kerja (iaitu menghitung hari Isnin, Selasa, Rabu, dll.), Anda boleh menggunakan fungsi SUMPRODUCT bersama dengan fungsi WEEKDAY. Dalam contoh yang ditunjukkan, formula dalam F4 adalah:

=SUMPRODUCT(--(WEEKDAY(dates,2)=E4))

Catatan: "tarikh" adalah julat bernama B4: B15.

Penjelasan

Anda mungkin tertanya-tanya mengapa kita tidak menggunakan COUNTIF atau COUNTIF? Fungsi-fungsi ini kelihatan seperti penyelesaian yang jelas. Namun, tanpa menambahkan kolom pembantu yang mengandungi nilai hari kerja, tidak ada cara untuk membuat kriteria untuk COUNTIF untuk menghitung hari kerja dalam pelbagai tarikh.

Sebagai gantinya, kami menggunakan fungsi SUMPRODUCT yang serba boleh, yang menangani tatasusunan dengan anggun tanpa perlu menggunakan Control + Shift + Enter.

Kami menggunakan SUMPRODUCT dengan hanya satu argumen, yang terdiri daripada ungkapan ini:

--(WEEKDAY(dates,2)=E4)

Berfungsi dari dalam ke luar, fungsi WEEKDAY dikonfigurasi dengan argumen pilihan 2, yang menyebabkannya mengembalikan nombor 1-7 untuk hari Isnin-Ahad, masing-masing. Ini menjadikannya lebih mudah untuk menyenaraikan hari mengikut nombor di lajur E mengikut urutan.

WEEKDAY kemudian menilai setiap tarikh dalam julat bernama "tarikh" dan mengembalikan nombor. Hasilnya adalah susunan seperti ini:

(1;3;7;1;5;2;7;1;7;5;4;7)

Nombor yang dikembalikan oleh WEEKDAY kemudian dibandingkan dengan nilai di E4, iaitu 1:

(1;3;7;1;5;2;7;1;7;5;4;7)=1

Hasilnya adalah susunan nilai BENAR / SALAH.

(TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE)

SUMPRODUCT hanya berfungsi dengan angka (bukan teks atau booleans) jadi kami menggunakan dua-negatif untuk memaksakan nilai BENAR / SALAH kepada seseorang dan nol:

(1;0;0;1;0;0;0;1;0;0;0;0)

Dengan satu array untuk diproses, SUMPRODUCT menjumlahkan item dan mengembalikan hasilnya, 3.

Berurusan dengan tarikh kosong

Sekiranya anda mempunyai sel kosong dalam senarai tarikh, anda akan mendapat hasil yang salah, kerana fungsi WEEKDAY akan mengembalikan hasil walaupun tidak ada tarikh. Untuk menangani sel kosong, anda boleh menyesuaikan formula seperti berikut:

=SUMPRODUCT((WEEKDAY(dates,2)=E4)*(dates""))

Mengalikan dengan ungkapan (tarikh "") adalah salah satu cara untuk membatalkan sel kosong.

Artikel menarik...