Ambil Tahun, Bulan, Hari Dengan Rumus Praktis
Mau ambil tahun, bulan, atau hari dari tanggal di spreadsheet tapi belum ngerti rumusnya? Tenang — gampang banget kalau udah paham trick-nya.
Di artikel ini aku kupas tuntas semua cara praktis buat ekstrak tahun, bulan, dan hari dari berbagai format tanggal di Excel maupun Google Sheets. Mulai dari fungsi dasar (`YEAR`, `MONTH`, `DAY`), pakai `TEXT()` biar tampilannya cakep, sampai parsing tanggal yang berupa teks (mis. `20251006`, `06-10-2025`, atau `October 6, 2025`).
Semua lengkap dengan tabel contoh, rumus siap copy-paste, dan trik agar aman buat pemula.
Gaya santai, cocok buat pelajar atau kamu yang malas baca manual panjang — langsung praktek aja!
Ringkasan cepat (buat yang pengen langsung praktek)
- `=YEAR(tanggal)` → ambil tahun (mis. 2025)
- `=MONTH(tanggal)` → ambil angka bulan (1–12)
- `=DAY(tanggal)` → ambil angka hari (1–31)
- `=TEXT(tanggal,"mmmm")` → nama bulan penuh (Oktober)
- `=TEXT(tanggal,"mmm")` → nama bulan singkat (Okt)
- Untuk tanggal dalam format teks `YYYYMMDD` → `=DATE(LEFT(A2,4), MID(A2,5,2), RIGHT(A2,2))`
- Untuk validasi tanggal teks gunakan `ISNUMBER(DATEVALUE(...))` atau `IFERROR(...)`
Kalau mau langsung server-ready: salin contoh tabel di bawah, lalu coba rumusnya satu-satu.
Kenapa ngerti ini penting?
Karena banyak kasus di dunia nyata:
- Kamu mau buat ringkasan per tahun / per bulan (laporan penjualan).
- Filter data berdasarkan bulan (mis. transaksi September).
- Hitung umur berdasarkan tanggal lahir.
- Tampilkan label “Oktober 2025” di dashboard.
Jadi mengetahui fungsi-fungsi sederhana ini bikin kerja spreadsheet jadi jauh lebih cepat.
1. Fungsi dasar: YEAR, MONTH, DAY — syntax & contoh sederhana
Syntax
- `=YEAR(serial_date)`
- `=MONTH(serial_date)`
- `=DAY(serial_date)`
`serial_date` artinya sel yang berisi tanggal (bisa hasil rumus, hasil konversi, atau literal date).
Contoh tabel dasar
Salin tabel ini ke sheet:
| A (Tanggal) | B (Year) | C (Month) | D (Day) | Keterangan |
|---|---|---|---|---|
| 2025-10-06 | =YEAR(A2) | =MONTH(A2) | =DAY(A2) | Format tanggal internasional (YYYY-MM-DD) → Terbaca benar |
| 06/10/2025 | =YEAR(A3) | =MONTH(A3) | =DAY(A3) | Format Indonesia (DD/MM/YYYY) → Terbaca benar jika regional setting Indonesia |
| 10/06/2025 | =YEAR(A4) | =MONTH(A4) | =DAY(A4) | Format AS (MM/DD/YYYY) → Bulan dan hari bisa tertukar tergantung pengaturan regional |
- Jika A2 berisi `2025-10-06`, `YEAR(A2)` → 2025
- `MONTH(A2)` → 10
- `DAY(A2)` → 6
Catatan: Excel/Sheets menyimpan tanggal sebagai angka (serial). Fungsi-fungsi ini ambil komponen dari nilai itu.
2. Menampilkan nama bulan & nama hari (human-friendly)
Kadang kita pengen label “Oktober” atau “Senin”. Gunakan `TEXT()`.
Contoh rumus:
- Nama bulan panjang: `=TEXT(A2, "mmmm")` → Oktober
- Nama bulan singkat: `=TEXT(A2, "mmm")` → Okt
- Nama hari: `=TEXT(A2, "dddd")` → Senin
- Nama hari singkat: `=TEXT(A2, "ddd")` → Sen
Tabel contoh
| A (Tanggal) | E (Bulan Panjang) | F (Hari) |
|---|---|---|
| 2025-10-06 | =TEXT(A2,"mmmm") → Oktober | =TEXT(A2,"dddd") → Senin |
Tips UX: Kalau butuh data sebagai teks (mis. label chart), `TEXT()` cocok. Kalau mau angka untuk filter/aggregate, tetap pakai `MONTH()`/`WEEKDAY()`.
3. Ambil bulan dengan leading zero (01, 02, …)
Kadang butuh format `01` untuk Januari. Cara gampang:
=TEXT(A2, "mm")
atau
=RIGHT("0"&MONTH(A2),2)
`TEXT()` langsung rapi. `RIGHT()` berguna kalau mau tetap numeric? (perlu konversi lagi). Biasanya `TEXT()` lebih simpel.
4. Ambil tahun dari tanggal yang berupa teks (various formats)
Masalah nyata: data impor sering kasih tanggal sebagai teks — contoh `20251006` atau `06-10-2025` — yang tidak dikenali sebagai tanggal. Kita bahas cara konversi dulu, lalu extract.
Format `YYYYMMDD` (contoh: `20251006`)
Gunakan:
=DATE(LEFT(A2,4), MID(A2,5,2), RIGHT(A2,2))
Penjelasan:
- `LEFT(A2,4)` → tahun `2025`
- `MID(A2,5,2)` → bulan `10`
- `RIGHT(A2,2)` → hari `06`
`DATE()` gabung jadi tanggal valid.
Setelah jadi tanggal, gunakan `=YEAR(...)`, `=MONTH(...)`, `=DAY(...)`.
Format `DD-MM-YYYY` atau `DD/MM/YYYY`
Jika sheet kamu pakai locale dd/mm/yyyy, `DATEVALUE()` sering bisa konversi:
=DATEVALUE(A2)
Tapi kalau `DATEVALUE()` susah karena locale, parse manual:
=DATE(RIGHT(A2,4), MID(A2,4,2), LEFT(A2,2))
(Asumsi `DD-MM-YYYY`, separator `-`)
Format textual: `October 6, 2025`
`DATEVALUE("October 6, 2025")` biasanya bekerja (bergantung locale). Tapi aman pakai:
=DATEVALUE(A2)
Jika error, extract words `MONTH` via `MONTH(DATEVALUE("1 "&LEFT(A2,FIND(" ",A2,1)-1)))` — rumit, tapi jarang perlu.
Contoh tabel parsing
| A (Tanggal teks) | B (Tanggal valid) | C (Tahun) |
|---|---|---|
| 20251006 | =DATE(LEFT(A2,4),MID(A2,5,2),RIGHT(A2,2)) | =YEAR(B2) → 2025 |
| 06-10-2025 | =DATE(RIGHT(A3,4), MID(A3,4,2), LEFT(A3,2)) | =YEAR(B3) → 2025 |
| October 6, 2025 | =DATEVALUE(A4) | =YEAR(B4) |
Catatan: selalu cek `ISNUMBER()` setelah konversi buat validasi.
5. Validasi & amanin konversi (cek apakah berhasil)
Sebelum pakai hasil parsing, pastikan nilainya memang tanggal (angka). Gunakan:
=ISNUMBER(B2) // TRUE kalau tanggal valid (karena tanggal adalah angka)
Atau:
=IFERROR(DATE(LEFT(A2,4),MID(A2,5,2),RIGHT(A2,2)), "Format salah")
Contoh:
- `=IF(ISNUMBER(DATEVALUE(A2)), "OK", "Bukan tanggal")`
Di Google Sheets: `VALUE()` juga sering dipakai.
6. Menangani tanggal dengan format ambigue (DD/MM vs MM/DD)
Ini pemicu bug paling sering. Kalau impor dari negara lain, format `MM/DD/YYYY` bisa salah terbaca sebagai `DD/MM/YYYY`. Triknya:
- Cek Locale spreadsheet. Di Google Sheets: File → Spreadsheet settings → Locale. Di Excel: cek regional settings OS.
- Jika teks, parse manual (lihat contoh parsing `DD-MM-YYYY`).
- Jika angka sudah di parse tapi salah, gunakan fungsi `DATE(YEAR,DAY,MONTH)` swap bulan & hari.
Contoh koreksi swap:
=IF(MONTH(A2)>12, DATE(YEAR(A2), DAY(A2), MONTH(A2)), A2)
Ini asumsi: jika `MONTH(A2)` lebih dari 12 berarti Excel salah baca (kemungkinan parsing), lalu swap.
Lebih aman: pasang validasi visual untuk semua tanggal yang jatuh invalid (misal day>31, month>12).
7. Ambil bagian waktu (jam/menit/detik) — bonus kecil
Walau fokus kita tahun/bulan/hari, sering perlu jam.
- `=HOUR(datetime)` → jam
- `=MINUTE(datetime)` → menit
- `=SECOND(datetime)` → detik
Contoh:
=HOUR(NOW()) // jam saat ini
8. Ekstrak kuartal dan fiscal year (kasus bisnis)
Sering kita perlu group per kuartal atau fiscal year yang dimulai bukan Januari.
Kuartal
=INT((MONTH(A2)-1)/3)+1
Contoh: bulan 10 → kuartal 4.
Fiscal year (mis. FY mulai April)
Jika FY mulai April: FY tahun = IF(MONTH(A2)>=4, YEAR(A2), YEAR(A2)-1)
=IF(MONTH(A2)>=4, YEAR(A2), YEAR(A2)-1)
Contoh: tanggal 2025-02-10 → FY = 2024 (jika FY mulai April 2024–Mar 2025).
9. Extract tahun/bulan/hari dari timestamp (tanggal + jam)
Jika sel berisi `2025-10-06 14:23:10` tetap pakai `YEAR/MONTH/DAY` karena fungsi otomatis ambil bagian tanggal.
Contoh:
=YEAR(A2), =MONTH(A2), =DAY(A2)
Kalau mau hanya tanggal tanpa jam:
=INT(A2) // buang pecahan jam/detil
10. Ekstrak dari Excel serial number (angka)
Kadang sheet punya angka `45218.10`. Itu serial date+time. `YEAR` dll tetap jalan. Tapi jika mau convert manual:
=DATE(1899,12,30) + serial
Biasanya nggak perlu karena `YEAR(serial)` sudah benar.
11. Konversi batch — array & drag-down
Kalau punya banyak baris tanggal teks dan mau konversi sekaligus:
- Excel modern / Google Sheets: tarik rumus ke bawah (drag).
- Google Sheets: gunakan arrayformula:
=ARRAYFORMULA(IF(A2:A="", "", YEAR(DATE(LEFT(A2:A,4), MID(A2:A,5,2), RIGHT(A2:A,2)))))
Ini bantu kalau data besar.
12. Contoh kasus nyata lengkap — laporan per bulan & per tahun
Misal tabel penjualan (salin ke sheet):
| No | Tanggal | Total |
|---|---|---|
| 1 | 2025-09-30 | 120000 |
| 2 | 2025-10-01 | 45000 |
| 3 | 2024-10-06 | 30000 |
| 4 | 2025-10-06 10:30 | 60000 |
Kita mau ringkasan:
- Total per tahun (2025)
- Total per bulan (Oktober 2025)
Rumus bantu:
- Tahun (kolom baru): `=YEAR(B2)`
- Bulan (angka): `=MONTH(B2)`
- Bulan (nama): `=TEXT(B2,"mmmm")`
Total per tahun (PivotTable) atau rumus:
=SUMIFS(C2:C100, YEAR(B2:B100), 2025) // TIDAK bisa langsung YEAR di SUMIFS
Karena SUMIFS tidak terima fungsi di range kriteria, solusi:
- Buat helper column `Tahun` = `YEAR(B2)` lalu:
=SUMIFS(C2:C100, D2:D100, 2025) // D2:D100 = helper tahun
Total per bulan (helper column `MonthYear`):
=TEXT(B2,"yyyy-mm") // menghasilkan "2025-10"
Lalu:
=SUMIFS(C2:C100, E2:E100, "2025-10")
Atau pakai PivotTable langsung group by Year/Month — lebih mudah.
13. Ekstrak dari format khusus: "YYYY-MM-DDTHH:MM:SS" (ISO 8601)
Terkadang data API ngasih format: `2025-10-06T14:23:10`. Untuk ambil tanggal:
=LEFT(A2,10) // "2025-10-06" =DATEVALUE(LEFT(A2,10)) // jadi tanggal
Lalu `YEAR()` dsb.
14. Fungsi bantu lain yang berguna
- `DATE(year, month, day)` — bangun tanggal dari angka
- `DATEVALUE(text)` — konversi teks ke tanggal (locale dependent)
- `VALUE(text)` — konversi teks ke angka (termasuk tanggal jika format cocok)
- `TEXT()` — format tampilan nama bulan, dll
- `EOMONTH(start, months)` — akhir bulan, berguna buat report per bulan
- `WEEKDAY(date, return_type)` — hari ke-berapa dalam minggu (1=Senin atau Sunday tergantung setting)
15. Edge cases & jebakan yang sering bikin pusing (dan solusinya)
- Tanggal tampak benar tapi tidak dianggap tanggal → gunakan `ISNUMBER()` untuk cek. Solusi: `DATEVALUE()` atau parsing manual.
- Format dd/mm vs mm/dd → cek locale & parse manual.
- Nilai kosong/NULL → wrap `IF(A2="", "", YEAR(A2))` supaya tidak muncul error.
- Rumus menghasilkan teks, bukan angka → waspadai `TEXT()` karena output string; kalau butuh angka lagi, konversi pakai `VALUE()`.
- Tanggal yang lebih kecil dari 1900 di Excel → Excel tidak mendukung tanggal sebelum 1900 (default). Hindari jika perlu sejarah panjang.
- Seri ISO + timezone (Z) → jika ada timezone, `DATEVALUE()` mungkin error; ekstrak bagian tanggal sebelum `T` dulu.
16. Tips UX & best practice saat pakai YEAR/MONTH/DAY
- Selalu buat helper column (Tahun, Bulan, Bulan-Tahun) agar rumus ringkas dan Pivot friendly.
- Gunakan format `yyyy-mm` untuk group month-year karena mudah di-sort.
- Untuk dashboard, simpan month name via `TEXT()` tapi gunakan helper numeric Month untuk sorting. (Contoh: col F = `MONTH(A2)`; col G = `TEXT(A2,"mmmm")` — lalu sort by F).
- Jangan gunakan `TEXT()` bila kamu butuh angka untuk fungsi matematik.
- Gunakan Data Validation (dropdown) untuk filter tahun agar user nggak typo.
17. Contoh latihan & jawaban (biar ngena)
Salin tabel kecil berikut ke sheet lalu coba jawab soal:
Tabel latihan (A1:B6)
| No | Tanggal |
|---|---|
| 1 | 20251006 |
| 2 | 06-10-2025 |
| 3 | October 6, 2025 |
| 4 | 2025/10/06 14:00 |
| 5 | 06/10/25 |
- Konversi semua ke format tanggal valid.
- Ambil tahun, bulan, hari masing-masing.
- Tampilkan nama bulan penuh untuk tiap baris.
- Konversi:
- A2 `20251006` → `=DATE(LEFT(A2,4),MID(A2,5,2),RIGHT(A2,2))`
- A3 `06-10-2025` → `=DATE(RIGHT(A3,4), MID(A3,4,2), LEFT(A3,2))`
- A4 `October 6, 2025` → `=DATEVALUE(A4)` (cek locale)
- A5 `2025/10/06 14:00` → `=INT(VALUE(A5))` atau `=DATEVALUE(LEFT(A5,10))`
- A6 `06/10/25` → `=DATEVALUE(A6)` kalau locale dd/mm/yy
- Tahun/Bulan/Hari:
- `=YEAR(B2)`, `=MONTH(B2)`, `=DAY(B2)`
- Nama bulan:
- `=TEXT(B2,"mmmm")`
18. Troubleshooting cepat
- `#VALUE!` saat pakai `DATEVALUE()` → format teks tidak dikenali. Gunakan parsing manual.
- `0` atau angka random muncul → probable date is text; coba `VALUE()` atau ubah format.
- Sorting bulan tidak sesuai (Januari, April, Agustus...) → gunakan helper `MONTH()` untuk sort.
19. Performance (jika data besar)
- Rumus `LEFT/MID/RIGHT` relatif ringan. `DATEVALUE()` di ribuan baris juga OK.
- Hindari array formula yang berat jika belum perlu; gunakan helper column.
- Gunakan PivotTable untuk agregasi besar.
20. Contoh formula cheat-sheet (siap copy-paste)
Dari tanggal valid (A2):=YEAR(A2) =MONTH(A2) =DAY(A2) =TEXT(A2,"mmmm") // nama bulan =TEXT(A2,"mmm") // nama bulan singkat =TEXT(A2,"dddd") // nama hari =INT(A2) // ambil bagian tanggal saja
=DATE(LEFT(A2,4), MID(A2,5,2), RIGHT(A2,2)) =YEAR(DATE(LEFT(A2,4), MID(A2,5,2), RIGHT(A2,2)))
=DATE(RIGHT(A2,4), MID(A2,4,2), LEFT(A2,2))
=TEXT(A2,"mm")
=INT((MONTH(A2)-1)/3)+1
=IF(MONTH(A2)>=4, YEAR(A2), YEAR(A2)-1)
21. Penutup & saran latihan
Sekarang kamu udah pegang semua teknik penting buat ambil tahun, bulan, dan hari dari berbagai tipe tanggal. Saran latihan cepat:
- Buat tabel impor dengan 20 baris tanggal acak (format campur teks/ISO/serial).
- Buat helper column `TanggalValid`, `Tahun`, `Bulan`, `NamaBulan`.
- Buat pivot: total per `NamaBulan` dan per `Tahun`.
- Tambahkan validasi: highlight baris yang gagal konversi.
Kalau masih bingung, coba kirim potongan data yang bikin masalah (contoh: `20251006`, `10/06/25`, `06-Oct-25`) dan praktekkan rumus parsing sesuai contoh.
Semakin sering lo praktek, makin cepat ingat rumusnya — promise.
Selamat ngoprek spreadsheet!

Gabung dalam percakapan