Rumus NETWORKDAYS untuk hitung hari kerja
Pernah gak sih lo harus ngitung berapa hari kerja antara dua tanggal — misalnya buat cuti, SLA, tanggal penagihan, atau timeline proyek — terus kepentok sama hitungan weekend dan hari libur? Tenang, di spreadsheet ada senjata khusus:
NETWORKDAYS (dan saudaranya NETWORKDAYS.INTL) yang bikin hitungan hari kerja jadi auto, rapi, dan bisa disesuaikan.
Artikel ini bakal bahas semuanya detil, step-by-step, dan pake banyak contoh nyata biar gampang dimengerti — cocok buat anak remaja yang lagi belajar atau mau bikin laporan sekolah/organisasi.
Langsung praktek, ya!
Daftar isi singkat
- Pengantar singkat: apa itu NETWORKDAYS
- Sintaks dan parameter dasar
- Contoh sederhana: hitung hari kerja tanpa libur
- Tambahkan daftar hari libur (holidays)
- NETWORKDAYS.INTL: custom weekend (mask) & contoh
- Kasus nyata lengkap (tabel & formula siap pakai)
- Hitung cuti karyawan
- Hitung SLA / tenggat kerja
- Pro rata gaji berdasarkan hari kerja
- Penjadwalan tugas proyek (business days)
- Cara hitung jam kerja (work hours) dengan kombinasi NETWORKDAYS + TIME
- Alternatif kalau perlu (SUMPRODUCT + WEEKDAY)
- Error umum & debugging (tanggal teks, timezone, inclusive/exclusive)
- UX tips: helper columns, named ranges, conditional formatting
- Performance & best practice
- Latihan & jawaban
- Ringkasan praktis
Pengantar singkat: apa itu NETWORKDAYS?
NETWORKDAYS adalah fungsi di Excel dan Google Sheets yang menghitung jumlah hari kerja (business days) antara dua tanggal, biasanya Minggu–Sabtu dianggap sebagai weekend (tidak dihitung), dan bisa mengecualikan hari libur yang kamu masukkan. Jadi kalau mau hitung "berapa hari kerja dari 1 Oktober sampai 10 Oktober" tanpa ngitung Sabtu/Minggu dan libur nasional, fungsi ini praktis banget.
Kalau butuh kontrol lebih (mis. weekend Senin & Selasa atau cuma Minggu sebagai weekend), pakai NETWORKDAYS.INTL yang memungkinkan kustomisasi weekend.
Sintaks dasar — cara pakai yang paling sering
Excel / Google Sheets
=NETWORKDAYS(start_date, end_date, [holidays])
- start_date = tanggal mulai (boleh cell referensi).
- end_date = tanggal akhir (boleh cell referensi).
- [holidays] = (opsional) range/array berisi tanggal libur yang harus dikecualikan.
Contoh:
=NETWORKDAYS(A2, B2) =NETWORKDAYS(A2, B2, $H$2:$H$10)
Keterangan: fungsi ini menghitung hari kerja termasuk start_date dan end_date jika keduanya adalah hari kerja (artinya inclusive).
Contoh sederhana — hitung hari kerja tanpa libur
Tabel contoh (salin ke sheet):
| No | Mulai | Selesai |
|---|---|---|
| 1 | 2025-10-01 | 2025-10-10 |
| 2 | 2025-10-03 | 2025-10-12 |
Rumus di kolom D:
=NETWORKDAYS(B2, C2)
Penjelasan: rumus ini akan menghitung jumlah hari kerja (Senin–Jumat) antara tanggal mulai dan selesai. Jika rentang melewati weekend, hari-hari weekend tidak ikut dihitung.
Contoh perhitungan manual:
- Untuk 2025-10-01 sampai 2025-10-10 → total kalendari 10 hari. Weekend (Sabtu & Minggu) yang jatuh di antara akan di-skip. Hasil akan bergantung tanggal pasti: jika 4–5 Oktober weekend, jumlah hari kerja = 8 (misal). Coba praktek langsung di sheet.
Menggunakan daftar hari libur (holidays)
Seringnya ada hari libur nasional yang harus dikecualikan. Cara gampang: buat daftar tanggal libur di range terpisah lalu masukkan range itu sebagai argumen holidays.
Contoh tabel:
Sheet Holidays:
| A (Tanggal Libur) |
|---|
| 2025-10-02 |
| 2025-10-09 |
| 2025-12-25 |
Sheet Data:
| No | Mulai | Selesai | Hari Kerja (tanpa libur) | Hari Kerja (dengan libur) |
|---|---|---|---|---|
| 1 | 2025-10-01 | 2025-10-10 | =NETWORKDAYS(B2,C2) | =NETWORKDAYS(B2,C2,Holidays!$A$2:$A$4) |
Penjelasan: NETWORKDAYS akan membuang tanggal yang ada di Holidays!A2:A4 dari perhitungan. Jika tanggal 2025-10-02 adalah libur, meski itu weekday, ia tidak dihitung.
Tips: Pastikan range holidays berisi nilai tanggal (bukan teks). Gunakan ISNUMBER() untuk cek.
NETWORKDAYS.INTL — custom weekend dan example mask
NETWORKDAYS.INTL memungkinkan kita menentukan hari weekend sendiri (misal Jumat-Sabtu, atau hanya Minggu). Sintaks:
=NETWORKDAYS.INTL(start_date, end_date, [weekend], [holidays])
- weekend bisa berupa string 7 karakter yang mewakili hari Senin→Minggu (0 = workday, 1 = weekend), mis: "0000011" artinya Sabtu & Minggu weekend (default).
- Atau weekend bisa berupa angka kode di Excel (tapi aman pakai string mask).
Contoh mask:
- "0000011" → weekend = Sabtu & Minggu
- "1000000" → weekend = Senin saja
- "0000001" → weekend = Minggu saja
- "0011000" → weekend = Rabu & Kamis
Contoh penggunaan:
=NETWORKDAYS.INTL(A2, B2, "0000011", HolidaysRange)
Contoh nyata: negara dengan weekend Jumat-Sabtu
Mask (Mon→Sun):
- Senin: 0
- Selasa: 0
- Rabu: 0
- Kamis: 0
- Jumat: 1
- Sabtu: 1
- Minggu: 0 → mask = "0000110"
Rumus:
=NETWORKDAYS.INTL(A2, B2, "0000110", HolidaysRange)
Contoh lengkap: hitung cuti karyawan (step-by-step)
Kasus:
Karyawan A ambil cuti 2025-10-01 sampai 2025-10-10. Perusahaan libur 2025-10-02. Weekend = Sabtu & Minggu. Hitung hari cuti kerja.
Tabel (salin ke sheet):
| No | Karyawan | Mulai | Selesai | Hari Kerja (cuti) |
|---|---|---|---|---|
| 1 | Andi | 2025-10-01 | 2025-10-10 | =NETWORKDAYS(C2,D2, Holidays!$A$2:$A$5) |
Langkah:
- Buat sheet Holidays dan list tanggal libur.
- Pastikan kolom Mulai & Selesai bertipe tanggal.
- Pakai formula di atas.
Penjelasan: NETWORKDAYS menghitung jumlah hari kerja (Mon–Fri) termasuk kedua ujung tanggal, lalu mengurangkan tanggal libur.
Jika hasil = 6, artinya Andi memakai 6 hari cuti kerja (bukan kalendari 10 hari).
Contoh: hitung SLA / tenggat kerja (deadline)
SLA: service must be completed within N working days. Cara cari tanggal deadline dari start + N hari kerja pakai WORKDAY, bukan NETWORKDAYS — namun NETWORKDAYS digunakan untuk mengecek kepatuhan (apakah tugas selesai dalam N hari kerja).
Contoh 1 — tentukan apakah ticket diselesaikan dalam SLA 5 hari kerja
Tabel:
| No | Ticket | Start | Closed | SLA Days | Within SLA? |
|---|---|---|---|---|---|
| 1 | T001 | 2025-10-01 | 2025-10-08 | 5 | =IF(NETWORKDAYS(B2,C2,Holidays!$A$2:$A$5) <= E2, "Yes", "No") |
Penjelasan:
- NETWORKDAYS(B2,C2,Holidays) hitung jumlah hari kerja antara Start & Closed.
- Jika ≤ SLA Days → lolos.
Catatan: adjust inclusive/exclusive sesuai kebijakan (kadang SLA dihitung exclude day start; sesuaikan dengan -1 atau +1).
Contoh 2 — cari tanggal deadline (pakai WORKDAY)
=WORKDAY(StartDate, N, HolidaysRange)
Contoh:
=WORKDAY(B2, 5, Holidays!$A$2:$A$5)
Hasil: tanggal 5 hari kerja setelah StartDate (excluded StartDate). WORKDAY.INTL juga ada untuk custom weekend.
Contoh: pro-rata gaji berdasarkan hari kerja
Kalau sistem payroll mau bayar pro-rata berdasarkan jumlah hari kerja di suatu periode.
Dataset:
| No | Nama | Bulan | Hari Kerja (Total) | Absensi (hari tidak hadir) | Bayaran Pro-Rata |
|---|---|---|---|---|---|
| 1 | Ani | 2025-10-01 | =NETWORKDAYS("2025-10-01","2025-10-31",Holidays!) | 2 | =FullSalary * (D2 - E2) / D2 |
Langkah:
- Hitung total hari kerja di bulan: =NETWORKDAYS(StartOfMonth, EndOfMonth, Holidays).
- Hitung absen (hari kerja yang tidak hadir).
- Pro-rata gaji = gaji penuh * (kehadiran hari kerja / total hari kerja).
Contoh formula:
=IF(FullSalary=0, "", FullSalary * (NETWORKDAYS(A2,B2,HolidaysRange) - Absensi) / NETWORKDAYS(A2,B2,HolidaysRange))
Hitung jam kerja / durasi kerja dengan NETWORKDAYS + waktu
NETWORKDAYS menghitung hari kerja (integer). Jika perlu jam kerja total (misal 8 jam/hari), tinggal dikalikan:
=NETWORKDAYS(StartDate, EndDate, HolidaysRange) * 8
Jika karyawan masuk/keluar dengan jam berbeda, gunakan kombinasi:
= (NETWORKDAYS(A2,B2,Holidays) - 1) * hours_per_day + (end_time - start_time)*24
Rumus lengkap untuk durasi jam antara DateTime start & end:
=NETWORKDAYS(INT(A2), INT(B2), Holidays)*WorkHoursPerDay - (IF(WEEKDAY(A2,2)>5,0,WorkHoursPerDay - (MOD(A2,1)*24 - WorkStart))) - (IF(WEEKDAY(B2,2)>5,0, (MOD(B2,1)*24 - WorkStart)))
— rumus di atas agak advanced dan butuh penyesuaian untuk jam kerja shift. Untuk kasus rumit, mending pakai helper column atau script.
Untuk kebanyakan kebutuhan, kalau kerja jam tetap per hari, cukup:
=NETWORKDAYS(start,end,holidays) * JamPerHari
Alternatif & cara hitung manual (SUMPRODUCT + WEEKDAY)
Jika Excel lama atau mau logika custom:
=SUMPRODUCT(--(WEEKDAY(ROW(INDIRECT(A2&":"&B2)),2)<=5))
Penjelasan:
- ROW(INDIRECT(A2&":"&B2)) bikin array angka dari serial tanggal A2 sampai B2.
- WEEKDAY(...,2) menghasilkan 1..7 untuk Mon..Sun.
- <=5 berarti Mon–Fri.
- SUMPRODUCT jumlahkan.
Catatan: rumus ini lebih berat & rumit; NETWORKDAYS jauh lebih gampang dan efisien.
Penanganan tanggal teks & common pitfalls
Pastikan tanggal adalah tanggal (bukan teks)
Gunakan:
=ISNUMBER(A2)
Jika FALSE, konversi dulu:
=DATEVALUE(A2) // jika format dikenali
Atau parse manual LEFT/MID/RIGHT untuk format aneh.
Inclusive / exclusive check
NETWORKDAYS(start,end) menghitung kedua ujung jika keduanya hari kerja. Jika ingin exclude start date:
=NETWORKDAYS(A2, B2) - IF(WEEKDAY(A2,2)<=5,1,0)
Atau pakai WORKDAY(start, n) untuk maju n hari kerja dari start (tidak menghitung start).
Tanggal swap (start > end)
Jika input tanggal terbalik, gunakan:
=NETWORKDAYS(MIN(A2,B2), MAX(A2,B2), Holidays)
Conditional formatting & presentasi hasil
Biar user lebih mudah baca hasil, bisa bikin conditional formatting:
- Highlight baris kalau NETWORKDAYS(...)=0 → mungkin karena rentang hanya weekend.
- Highlight telat (SLA): =NETWORKDAYS(Start, Closed) > SLA → format merah.
- Tampilkan tooltip/helper: kolom kecil yang menunjukkan WeekdaysCount, WeekendCount (pakai helper formulas).
Contoh: hitung jumlah weekend antara dua tanggal:
= (B2-A2+1) - NETWORKDAYS(A2,B2)
Catatan: total kalendari dikurangi hari kerja = jumlah weekend + holidays yang jatuh di weekdays; hati-hati jika ada holidays.
Best practice & UX tips
- Gunakan named ranges untuk Holidays: misal Holidays sehingga rumus jadi NETWORKDAYS(A2,B2,Holidays). Lebih rapi.
- Buat helper columns: StartDate, EndDate, EffectiveEnd = IF(End="", TODAY(), End); lalu Days = NETWORKDAYS(Start, EffectiveEnd, Holidays).
- Validasi input: pastikan tanggal valid pakai data validation (Date).
- Format output: tambahkan label “hari kerja”: =NETWORKDAYS(...) & " hari kerja".
- Gunakan WORKDAY / WORKDAY.INTL untuk menghitung tanggal jatuh tempo (deadline) berdasarkan N hari kerja.
Performance & kasus besar
- Hindari range Holidays referensi volatile; gunakan named range kecil.
- Simpan hasil per-bulan (precompute) jika sering memanggil fungsi untuk rentang yang sama.
- Untuk dataset raksasa, pertimbangkan processing di Power Query (Excel) atau BigQuery (Google ecosystem).
Latihan praktis & contoh jawaban lengkap
Salin tabel ini ke sheet lalu kerjakan:
Tabel latihan (A1:C6)
| No | Mulai | Selesai |
|---|---|---|
| 1 | 2025-10-01 | 2025-10-10 |
| 2 | 2025-10-03 | 2025-10-15 |
| 3 | 2025-12-20 | 2026-01-10 |
| 4 | 2025-04-20 | 2025-04-24 |
| 5 | 2025-05-01 | 2025-05-05 |
Tugas:
- Hitung jumlah hari kerja menggunakan NETWORKDAYS (tanpa holidays).
- Buat sheet Holidays berisi contoh libur: 2025-10-02 dan 2025-12-25. Ulangi hitungan dengan holidays.
- Untuk baris 3 (libur akhir tahun), bandingkan hasil NETWORKDAYS antara Excel default weekend dan jika company weekend = Fri–Sat (pakai NETWORKDAYS.INTL).
Jawaban (rumus):
=NETWORKDAYS(B2,C2)
=NETWORKDAYS(B2,C2,Holidays!$A$2:$A$3)
=NETWORKDAYS.INTL(B4,C4,"0000110",Holidays!$A$2:$A$3) // Jumat-Sabtu weekend
Troubleshooting umum
- Hasil #VALUE! atau #NUM!: cek apakah start_date dan end_date valid (ISNUMBER). Jika start > end, gunakan MIN/MAX.
- Hasil lebih kecil dari ekspektasi: cek apakah holidays berisi tanggal salah (range salah).
- Hasil sama walaupun ubah holidays: pastikan holidays diformat sebagai tanggal bukan teks; gunakan DATEVALUE jika perlu.
- NETWORKDAYS.INTL tidak tersedia di Excel lama? Ada di Excel 2010+ dan Google Sheets. Untuk Excel lama, pakai SUMPRODUCT + WEEKDAY untuk custom weekend.
Studi kasus besar: jadwalkan proyek berbasis hari kerja
Tabel project:
| Task | Start | End | Hari Kerja |
|---|---|---|---|
| A | 2025-10-01 | 2025-10-05 | =NETWORKDAYS(B2,C2,Holidays) |
| B | 2025-10-06 | 2025-10-15 | ... |
| C | 2025-10-16 | 2025-10-30 | ... |
Total durasi hari kerja:
=SUM(D2:D4)
Jika ada ketergantungan (task B dimulai setelah A selesai + 2 hari kerja):
=WORKDAY(A_end, 2, Holidays)
Advanced: gabung NETWORKDAYS + INDEX/MATCH untuk lookup periode
Misal ada rate per hari kerja yang berubah tiap bulan. Contoh:
=NETWORKDAYS(Start, End, Holidays) * TarifPerHari
Jika tarif berubah per periode, gunakan helper per hari atau pivot untuk akurasi lebih tinggi.
Ringkasan praktis (cheat sheet)
- Hitung hari kerja (Mon–Fri): =NETWORKDAYS(start,end)
- Dengan daftar libur: =NETWORKDAYS(start,end, HolidaysRange)
- Kustom weekend: =NETWORKDAYS.INTL(start,end,"0000011",Holidays) (mask Mon→Sun)
- Deadline setelah N hari kerja: =WORKDAY(start,N,Holidays)
- Hitung jam kerja kasar: =NETWORKDAYS(start,end,Holidays)*JamPerHari
- Jika start > end: gunakan MIN/MAX untuk swap.
Penutup motivasi singkat
Kalau lo sering urus cuti, jadwal ulangan, SLA, atau proyek, NETWORKDAYS dan NETWORKDAYS.INTL bakal jadi alat yang sering lo pakai.
Mereka hematin waktu karena ngurus semua kerumitan weekend dan libur nasional.
Tips terakhir: latihan itu kunci — salin tabel contoh ke spreadsheet-mu, coba semua rumus, ubah tanggal dan holidays, dan lihat perubahan hasil.
Nanti lo bakal paham nuance-nya sendiri.
Selamat ngoprek spreadsheet — semoga fungsi NETWORKDAYS ini bikin hidup kerja dan sekolahmu lebih gampang!

Gabung dalam percakapan