ikuti Saluran WhatsApp Rumahdisolo.com. Klik WhatsApp

Hitung Selisih Waktu Dengan Rumus DATEDIF

Pelajari cara menghitung selisih waktu dengan rumus DATEDIF secara cepat dan akurat. Klik untuk mulai kuasai perhitungan tanggal sekarang!

Pengen tahu seberapa lama antara dua tanggal? Mau hitung umur, lama kerja, sisa langganan, atau telatnya pengumpulan tugas? Fungsi DATEDIF itu jawaranya. Di artikel ini kita bakal kupas tuntas DATEDIF dari A–Z: sintaks, unit yang tersedia, contoh nyata (tabel + rumus siap copy-paste), trik gabungin hasil jadi `X tahun Y bulan Z hari`, cara atasi jebakan (leap year, tanggal terbalik, partial month), sampai alternatif kalau butuh nilai desimal atau selisih waktu jam/menit. Gaya santai, cocok buat anak remaja — langsung praktek aja biar cepet paham!


Ringkasan singkat sebelum masuk detail

  • `DATEDIF(start_date, end_date, unit)` → hitung selisih antara dua tanggal dalam unit tertentu.

  • Unit umum: `"Y"` (tahun penuh), `"M"` (bulan penuh), `"D"` (hari), `"MD"` (hari tanpa hitung bulan/tahun), `"YM"` (bulan tanpa hitung tahun), `"YD"` (hari tanpa hitung tahun).

  • `DATEDIF` ada di Excel (meski agak “undocumented” di beberapa versi) dan Google Sheets.

  • Untuk waktu (jam/menit), gunakan pengurangan `end - start` lalu format hasil atau konversi ke jam/menit.


1. Apa itu DATEDIF dan kapan dipakai?

DATEDIF (Date Difference) adalah fungsi yang menghitung selisih antara dua tanggal dengan presisi tertentu. Ideal untuk:

  • Menghitung umur (tahun/bulan/hari).

  • Menghitung masa kerja (tenure) pegawai.

  • Menentukan selisih bulan untuk tagihan/biaya berlangganan.

  • Menghitung telat pengumpulan tugas (day overdue).

  • Menyusun teks seperti “2 tahun 3 bulan 5 hari”.

Kelebihan DATEDIF: langsung kasih hitungan “lengkap” (tahun/bulan/hari) tanpa harus susah-susah menghitung sisa bulan/days. Kekurangannya: perilaku beberapa unit (MD/YD/YM) kadang bikin bingung kalau belum ngerti definisinya.


2. Sintaks DATEDIF

=DATEDIF(start_date, end_date, unit)
  • `start_date` = tanggal awal (harus <= end_date untuk hasil valid).

  • `end_date` = tanggal akhir.

  • `unit` = string yang menandakan format keluaran (mis. `"Y"`, `"M"`, `"D"`, `"YM"`, `"YD"`, `"MD"`).

Catatan: Jika `start_date > end_date`, DATEDIF sering menghasilkan error (`#NUM!`). Kita akan bahas cara aman gunakan DATEDIF dengan swap tanggal.


3. Unit-unit yang sering dipakai (jelas + contoh)

`"Y"` → Jumlah tahun penuh

Menghitung berapa tahun penuh antara start dan end.

Contoh:

  • Start: 2019-10-06, End: 2025-10-06 → `=DATEDIF(start,end,"Y")` → 6.

`"M"` → Jumlah bulan penuh

Menghitung berapa bulan penuh antara dua tanggal (tanpa bulatkan ke tahun).

Contoh:

  • Start: 2025-01-15, End: 2025-10-06 → `=DATEDIF(start,end,"M")` → hitung bulan penuh dari Jan15 ke Oct06 = 8 bulan penuh? DATEDIF menghitung jumlah bulan penuh.

`"D"` → Jumlah hari

Langsung `end - start` (hari kalendari).

Contoh:

  • Start: 2025-10-01, End: 2025-10-06 → `=DATEDIF(...,"D")` → 5 hari.

`"MD"` → Sisa hari setelah menghapus pengaruh bulan dan tahun

Contoh:

  • Start: 2025-01-28, End: 2025-02-06 → `=DATEDIF(...,"MD")` → menghitung sisa hari ignoring months/years; jadi dari 28→6 = ... (perilaku MD agak tricky—lihat contoh di bawah).

`"YM"` → Sisa bulan setelah menghapus pengaruh tahun

Contoh:

  • Start: 2019-10-06, End: 2025-10-06 → `=DATEDIF(...,"YM")` → 0 bulan (karena hari dan bulan sama, hanya tahun beda).

`"YD"` → Sisa hari setelah menghapus pengaruh tahun

Contoh:

  • Start: 2024-02-29, End: 2025-02-28 → `=DATEDIF(...,"YD")` → pengaruh leap-year berbeda; YD menghitung selisih hari pada tahun yang sama mengabaikan tahun.

Penting: MD, YM, YD digunakan kalau ingin menggabungkan output jadi teks mis. `X tahun Y bulan Z hari`. Tapi definisi-nya bisa terlihat membingungkan awalnya — kita akan lihat contoh nyata supaya jelas.

4. Contoh tabel lengkap: lihat semua unit DATEDIF (copy-paste)

Salin tabel ini ke spreadsheetmu supaya gampang dicoba.

No Start End =DATEDIF(start,end,"Y") "M" "D" "MD" "YM" "YD"
1 2019-10-06 2025-10-06 6 72 2193 0 0 0
2 2024-02-29 2025-02-28 0 11 366 30 11 365
3 2025-01-15 2025-10-06 0 8 264 21 8 264
4 2025-01-31 2025-02-28 0 0 28 28 0 28
5 2025-02-28 2025-03-01 0 0 1 1 0 1
Praktik: masukkan nilai tanggal di kolom A dan B lalu pakai rumus di kolom C–H sesuai contoh. Lihat hasilnya dan bandingkan.

5. Contoh nyata dengan penjelasan (kasus per kasus)

Contoh A — Hitung umur (years only)

Tabel sederhana:

Nama Tgl Lahir
Andi 2005-10-06
Budi 2010-05-20

Rumus umur (tahun penuh):

=DATEDIF(B2, TODAY(), "Y")

Penjelasan: `DATEDIF(tgl_lahir, TODAY(), "Y")` hitung berapa tahun penuh sampai hari ini.

Contoh B — Umur lengkap (tahun, bulan, hari)

`X tahun Y bulan Z hari` formula:

=DATEDIF(B2, TODAY(), "Y") & " tahun " & DATEDIF(B2, TODAY(), "YM") & " bulan " & DATEDIF(B2, TODAY(), "MD") & " hari"

Contoh output: `18 tahun 3 bulan 10 hari`.

Catatan: `MD` bisa menghasilkan nilai yang kadang tidak intuitif di sekitar akhir bulan/leap year—lihat bagian jebakan nanti.

Contoh C — Lama kerja (tenure) dengan format readable

Tabel:

Nama Start kerja End kerja
Sasa 2018-03-20 2025-10-06

Rumus:

=DATEDIF(B2, C2, "Y") & " thn " & DATEDIF(B2, C2, "YM") & " bln"

Jika mau termasuk hari: tambahkan `" & DATEDIF(B2,C2,"MD") & " hari"`.

Contoh D — Hitung jumlah bulan penuh antara dua tanggal (untuk tagihan)

Jika tagihan jatuh per bulan penuh:

=DATEDIF(A2,B2,"M")

Ini kembali bulan penuh. Misal dari 10 Jan ke 9 Feb → 0 bulan penuh. Dari 10 Jan ke 10 Feb → 1 bulan penuh.


6. Cara gabungin jadi “X tahun Y bulan Z hari” (step-by-step)

Rumus single cell yang sering dipakai:

excel
=IF(OR(A2="",B2=""),"",DATEDIF(A2,B2,"Y") & " tahun " & DATEDIF(A2,B2,"YM") & " bulan " & DATEDIF(A2,B2,"MD") & " hari")
  • `IF(OR(A2="",B2=""),"","...")` → safety check kalau ada sel kosong.

  • `DATEDIF(A2,B2,"Y")` → tahun penuh.

  • `DATEDIF(A2,B2,"YM")` → sisa bulan setelah hitung tahun.

  • `DATEDIF(A2,B2,"MD")` → sisa hari setelah hitung bulan & tahun.

Contoh: Start 2018-03-20 End 2025-10-06 → `7 tahun 6 bulan 16 y` (hasil tergantung tanggal).


7. Edge cases / jebakan DATEDIF — harus tahu supaya gak salah

DATEDIF kelihatannya sederhana, tapi ada beberapa perangkap:

A. `start_date` > `end_date`

DATEDIF biasanya error (`#NUM!`). Solusi:

excel
=IF(A2>B2, DATEDIF(B2,A2,"Y"), DATEDIF(A2,B2,"Y"))

Atau pakai `MIN`/`MAX`:

excel
=DATEDIF(MIN(A2,B2), MAX(A2,B2), "Y")

B. `MD` hasil tidak intuitif di akhir bulan

Contoh:

  • Start: 2020-01-31, End: 2020-02-28

`DATEDIF(...,"MD")` menghasilkan 28? atau - tricky. Behavior: MD menghitung sisa hari mengabaikan bulan dan tahun—tapi di beberapa kombinasi akhir bulan, hasil bisa tampak tidak sesuai ekspektasi. Jadi hati-hati: untuk kalkulasi hari “real” lebih aman gunakan `D` atau kombinasi `INT`/`MOD`.

Untuk umur, `DATEDIF(...,"MD")` umum dipakai tapi verifikasi pada tanggal 28/29 Feb.

C. Leap year (29 Feb)

  • Jika start adalah 29 Feb (leap day) dan end di non-leap, hasil Y/MD/YD bisa berbeda-beda dibanding ekspektasi. Contoh:

  • Start: 2016-02-29, End: 2017-02-28

  • `DATEDIF(...,"Y")` → 0? 1? DATEDIF menganggap perbandingan ulang tahun... test di sheet.

Solusi: kalau hasil harus konsisten, gunakan `YEARFRAC` atau logika tambahan.

D. DATEDIF di Excel kadang undocumented

Excel punya fungsi DATEDIF tapi dokumentasinya tidak selengkap fungsi lain. Meski begitu tetap bisa dipakai. Di Google Sheets DATEDIF lebih jelas.

E. Perbedaan inclusive/exclusive

DATEDIF menghitung exclusive (misal `D` = end - start). Kalau mau hitung termasuk kedua tanggal (inclusive), tambahkan `+1` sesuai kebutuhan:

  • `=DATEDIF(A2,B2,"D")+1` → hitung inklusif.


8. Alternatif DATEDIF: DAYS, YEARFRAC, INT, manual

Kadang DATEDIF kurang fleksibel. Alternatif:

A. DAYS (Excel/Sheets)

=DAYS(end, start)   // sama dengan end - start

Return: jumlah hari (integer). Sangat berguna untuk overdue, SLA.

B. YEARFRAC (desimal tahun)

=YEARFRAC(start, end, basis)
  • `basis` = day count basis (0–4). Misal basis 1 = actual/360, default 0 = US (NASD) 30/360. `YEARFRAC` berguna bila butuh

umur desimal (mis. 2.75 tahun).

C. Convert days ke tahun/bulan

Kalau mau hasil desimal:

=DATEDIF(start,end,"D") / 365  // kasar, jangan dipakai untuk akurasi tinggi (leap year)

Lebih akurat pakai `YEARFRAC`.

D. Untuk jam/menit/detik (durasi waktu)

DATEDIF hanya untuk tanggal (hari). Untuk waktu gunakan:

=EndDateTime - StartDateTime    // hasil = decimal hari
// untuk jam:
=(EndDateTime - StartDateTime) * 24
// format sebagai hh:mm:ss:
=TEXT(EndDateTime - StartDateTime, "[h]:mm:ss")

9. Use cases & rumus siap pakai (copy-paste friendly)

Use case 1 — Umur seseorang (tahun)

=IF(B2="","", DATEDIF(B2, TODAY(), "Y"))

Use case 2 — Umur lengkap (Y M D)

=IF(B2="","", DATEDIF(B2, TODAY(), "Y") & " thn " & DATEDIF(B2, TODAY(), "YM") & " bln " & DATEDIF(B2, TODAY(), "MD") & " hari")

Use case 3 — Lama kerja sampai hari ini

=IF(OR(A2="",B2=""),"", DATEDIF(A2, TODAY(), "Y") & " thn " & DATEDIF(A2, TODAY(), "YM") & " bln")

Use case 4 — Hitung bulan penuh antara dua tanggal (untuk billing)

=DATEDIF(A2,B2,"M")

Use case 5 — Hitung hari overdue (inklusive)

=IF(B2 < TODAY(), DAYS(TODAY(), B2) + 1, 0)

atau

=MAX(0, DATEDIF(B2, TODAY(), "D"))

Use case 6 — Waktu tersisa sampai expiry (tahun/bulan/hari)

=IF(TODAY() > C2, "Expired", DATEDIF(TODAY(), C2, "Y") & " thn " & DATEDIF(TODAY(),C2,"YM") & " bln " & DATEDIF(TODAY(),C2,"MD") & " hr")

Use case 7 — Swap otomatis bila tanggal terbalik

=DATEDIF(MIN(A2,B2), MAX(A2,B2), "D")

10. Contoh lengkap: Studi kasus (step-by-step)

Di bawah ini ada contoh nyata lengkap (salin ke sheet dan cobain).

Tabel: Pegawai & masa kerja
No Nama Start Kerja End Kerja
1 Sari 2017-03-15 2025-10-06
2 Rudi 2019-08-01 (kosong = aktif)

Goal: tampilkan Tenure = `X tahun Y bulan Z hari` sampai EndKerja (atau TODAY jika kosong).

Rumus di kolom `Tenure`:

excel
=IF(B2="", "", 
   LET(s, C2, e, IF(D2="", TODAY(), D2),
       DATEDIF(s,e,"Y") & " thn " & DATEDIF(s,e,"YM") & " bln " & DATEDIF(s,e,"MD") & " hr"
   )
)

Jika Excel versi lama tanpa `LET`, pakai:

excel
=IF(C2="", "", DATEDIF(C2, IF(D2="", TODAY(), D2), "Y") & " thn " & DATEDIF(C2, IF(D2="", TODAY(), D2), "YM") & " bln " & DATEDIF(C2, IF(D2="", TODAY(), D2), "MD") & " hr")

11. Menghitung selisih waktu dengan jam (datetime)

DATEDIF tidak menghitung jam. Kalau kolom berisi datetime (`2025-10-06 14:00`), lakukan:

A. Total jam (decimal)

=(EndDateTime - StartDateTime) * 24

B. Jam:menit:detik

=TEXT(EndDateTime - StartDateTime, "[h]:mm:ss")

Contoh tabel:

Start End Durasi (jam) Durasi (hh:mm:ss)
2025-10-06 09:00 2025-10-06 17:30 =(...)*24 → 8.5 =TEXT(..., "[h]:mm:ss") → 8:30:00

12. When to use YEARFRAC / DAYS360 / NETWORKDAYS (singkat)

  • `YEARFRAC` → kalau butuh umur/tahun desimal (mis. 1.54 tahun).

  • `DAYS360` → perhitungan keuangan yang pakai basis 30/360.

  • `NETWORKDAYS` → hitung hari kerja (Senin–Jumat) — akan dibahas Bab lain tapi penting sebagai alternatif untuk menghitung hari kerja.


13. Mengatasi masalah umum & tips debugging

Masalah A: DATEDIF return `#NUM!`

  • Pastikan `start <= end`. Gunakan `MIN`/`MAX` swap atau IF.

Masalah B: MD hasil ganjil di akhir bulan

  • Gunakan metode alternatif: hitung total days (`D`), compute months (`M`), lalu sisa hari = total days - (months*approxDays?) — rumit. Lebih baik gunakan kombinasi `EOMONTH` dan logika untuk kasus kritikal.

Masalah C: Ingin inclusive count (termasuk hari start)

  • Tambahkan `+1` pada hasil `D`.

Masalah D: Hari kerja excluding weekends & holidays

  • Gunakan `NETWORKDAYS(start,end, HolidaysRange)`.

Debug tip:

  • Selalu cek `ISNUMBER(cell)` untuk memastikan cell adalah tanggal. Jika tidak, gunakan `DATEVALUE()` atau parsing manual (`LEFT/MID/RIGHT`) lalu `DATE()`.


14. Performance & best practice

  • Untuk dataset besar, jangan panggil DATEDIF berkali-kali di satu cell identik; gunakan helper columns (mis. hitung `EndEffective = IF(End="",TODAY(), End)` sekali, lalu DATEDIF pakai helper).

  • Gunakan `LET` (Excel 365) untuk readability.

  • Gunakan PivotTable jika butuh ringkasan per periode daripada rumus kompleks per baris.


15. FAQ singkat (jawaban cepat)

Q: Apa bedanya DATEDIF `"D"` dan `DAYS(end,start)`?

A: Sama hasilnya (jumlah hari), tapi `DAYS` terkadang lebih jelas.

Q: Bisa DATEDIF hitung termasuk waktu (jam)?

A: Tidak. DATEDIF hanya untuk tanggal (hari). Untuk jam gunakan pengurangan datetime.

Q: Bagaimana cara hitung umur termasuk hari saat lahir?

A:`DATEDIF(birth, TODAY(), "D") + 1` jika mau inclusive.

Q:Apakah DATEDIF akurat lintas leap year?

A: Ya, DATEDIF menghitung berdasarkan kalender sehingga leap year di-handle — tapi perhatikan unit `MD`/`YD` yang bisa bikin bingung.


16. Cheat-sheet rumus penting (siap copy-paste)

  • Tahun penuh:

excel
  =DATEDIF(A2,B2,"Y")
  • Bulan penuh:

excel
  =DATEDIF(A2,B2,"M")
  • Hari:

excel
  =DATEDIF(A2,B2,"D")
  • Umur lengkap:

excel
  =DATEDIF(A2,B2,"Y") & " thn " & DATEDIF(A2,B2,"YM") & " bln " & DATEDIF(A2,B2,"MD") & " hr"
  • Swap tanggal otomatis:

excel
  =DATEDIF(MIN(A2,B2), MAX(A2,B2), "D")
  • Jam durasi:

excel
  =(B2 - A2) * 24
  • Waktu format hh:mm:

excel
  =TEXT(B2 - A2, "[h]:mm:ss")

17. Latihan praktek (agar nempel)

Buat sheet dan salin tabel contoh di bawah lalu isi rumus ini:

Tabel latihan (A1:C6)

No Start End
1 2015-02-10 2025-10-06
2 2020-02-29 2021-02-28
3 2024-01-31 2024-02-29
4 2025-01-31 2025-02-28
5 2025-10-01 2025-10-06

Soal:

1. Untuk tiap baris, hitung `Y/M/D` menggunakan DATEDIF.

2. Hitung jumlah hari (`DAYS`).

3. Buat output human-readable `X tahun Y bulan Z hari`.

Cek jawaban dengan rumus-rumus yang sudah dijelaskan di bagian cheat-sheet.


18. Penutup — jangan takut utak-atik!

DATEDIF itu salah satu fungsi yang paling berguna untuk soal waktu di spreadsheet.

Sekali kamu paham definisi unit-unitnya dan beberapa jebakan kecil (tanggal terbalik, akhir bulan, leap year), kamu bakal bisa bikin laporan umur, tenure, billing cycles, dan banyak lagi dengan cepat.

Kuncinya: praktek — salin contoh tabel, coba semua unit, bandingkan hasilnya, dan tambahkan `IFERROR`/`ISNUMBER` untuk keamanan.

Kalau butuh versi rumus yang lebih spesifik (mis. hitung tenure dengan business rule tertentu), tinggal copy tabel contoh kamu dan modifikasi rumusnya.

Selamat coba — jangan lupa simpan file sebelum eksperimen macro atau skrip.

Semoga DATEDIF jadi senjata rahasiamu buat ngolah tanggal di spreadsheet!

Siswi SMK Muhammadiyah 1 sukoharjo yang cerdas, Bersemangat, dan Berintegritas. Profil Lengkap saya