
Formula umum
=SUMPRODUCT(--(WEEKDAY(dates)=day_num))
Ringkasan
Untuk menghitung tanggal pada hari kerja (misalnya menghitung hari Senin, Selasa, Rabu, dll.), Anda dapat menggunakan fungsi SUMPRODUCT bersama dengan fungsi WEEKDAY. Dalam contoh yang ditunjukkan, rumus di F4 adalah:
=SUMPRODUCT(--(WEEKDAY(dates,2)=E4))
Catatan: "tanggal" adalah rentang bernama B4: B15.
Penjelasan
Anda mungkin bertanya-tanya mengapa kami tidak menggunakan COUNTIF atau COUNTIF? Fungsi-fungsi ini sepertinya merupakan solusi yang jelas. Namun, tanpa menambahkan kolom pembantu yang berisi nilai hari kerja, tidak ada cara untuk membuat kriteria untuk COUNTIF untuk menghitung hari kerja dalam rentang tanggal.
Sebagai gantinya, kami menggunakan fungsi SUMPRODUCT serbaguna, yang menangani array dengan anggun tanpa perlu menggunakan Control + Shift + Enter.
Kami menggunakan SUMPRODUCT hanya dengan satu argumen, yang terdiri dari ekspresi ini:
--(WEEKDAY(dates,2)=E4)
Bekerja dari dalam ke luar, fungsi WEEKDAY dikonfigurasi dengan argumen opsional 2, yang menyebabkannya mengembalikan angka 1-7 untuk hari Senin-Minggu. Ini memudahkan untuk membuat daftar hari secara berurutan dengan angka-angka di kolom E secara berurutan.
WEEKDAY kemudian mengevaluasi setiap tanggal dalam rentang bernama "tanggal" dan mengembalikan angka. Hasilnya adalah array seperti ini:
(1;3;7;1;5;2;7;1;7;5;4;7)
Angka yang dikembalikan pada WEEKDAY kemudian dibandingkan dengan nilai di E4, yaitu 1:
(1;3;7;1;5;2;7;1;7;5;4;7)=1
Hasilnya adalah larik nilai TRUE / FALSE.
(TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE)
SUMPRODUCT hanya bekerja dengan angka (bukan teks atau boolean) jadi kami menggunakan negatif ganda untuk memaksa nilai TRUE / FALSE menjadi satu dan nol:
(1;0;0;1;0;0;0;1;0;0;0;0)
Dengan satu larik untuk diproses, SUMPRODUCT menjumlahkan item dan mengembalikan hasilnya, 3.
Berurusan dengan tanggal kosong
Jika Anda memiliki sel kosong dalam daftar tanggal, Anda akan mendapatkan hasil yang salah, karena fungsi WEEKDAY akan mengembalikan hasil meskipun tidak ada tanggal. Untuk menangani sel kosong, Anda dapat menyesuaikan rumus sebagai berikut:
=SUMPRODUCT((WEEKDAY(dates,2)=E4)*(dates""))
Mengalikan dengan ekspresi (tanggal "") adalah salah satu cara untuk menghilangkan sel kosong.