Cara Menghitung Usia dari Tanggal Lahir (Excel, Sheets, dan SQL)
Diperbarui: 2026-09-29
Usia adalah dua tanggal ditambah sebuah kalender, dan hampir semua usia yang salah di spreadsheet berasal dari memperlakukannya sebagai pembagian. Satu rumus Excel menjawab pertanyaan versi utamanya, tetapi varian-varian di belakangnya, yaitu tahun dan bulan, tanggal referensi tertentu, tanpa DATEDIF, Google Sheets, dan SQL Server, masing-masing butuh jawaban berbeda, dan yang untuk SQL Server salah secara sistematis sampai Anda memperbaikinya. Setiap rumus di bawah ini ditulis persis seperti Anda mengetiknya, dan perkiraan ditandai sebagai perkiraan.
Alat
Hitung usia dari tanggal lahir
Berjalan sepenuhnya di peramban Anda, tanggal lahir dan usia Anda tidak pernah dikirim ke mana pun.
Alat
Hitung usia dari tanggal lahir
Berjalan sepenuhnya di peramban Anda, tanggal lahir dan usia Anda tidak pernah dikirim ke mana pun.
Jawaban singkatnya
Jika A2 berisi tanggal lahir, maka =DATEDIF(A2,TODAY(),"Y") mengembalikan usia tepat dalam tahun penuh. Rumusnya sama di Excel dan Google Sheets, hitungannya memakai tahun kalender sungguhan dan bukan panjang tahun rata-rata, dan ia mengurangkan ulang tahun yang belum tiba untuk Anda. Inilah satu-satunya rumus usia di halaman ini yang patut Anda percaya untuk usia seseorang yang sebenarnya hari ini.
Semua yang lain di sini adalah variannya. Tiga panggilan DATEDIF dengan "Y", "YM", dan "MD" menuliskan usia sebagai tahun, bulan, dan hari. Mengganti TODAY() dengan referensi sel memberi usia pada tanggal tertentu. Rumus berbasis YEAR melakukan pekerjaan itu di tempat DATEDIF tidak terdokumentasi atau tidak ada. Di SQL Server, DATEDIFF(year, ...) sama sekali bukan usia sampai Anda memperbaikinya.
- Usia tepat dalam tahun, Excel atau Sheets: =DATEDIF(A2,TODAY(),"Y")
- Tahun, bulan, dan hari: tiga panggilan DATEDIF dengan "Y", "YM", dan "MD"
- Tanpa DATEDIF: =YEAR(TODAY())-YEAR(A2)-(TODAY()<DATE(YEAR(TODAY()),MONTH(A2),DAY(A2)))
- Usia pada tanggal tertentu yang disimpan di B2: =DATEDIF(A2,B2,"Y")
- Total hari yang telah dijalani: =TODAY()-A2, diformat sebagai angka dan bukan sebagai tanggal
- SQL Server: kurangkan 1 dari DATEDIFF(year, birth, GETDATE()) ketika ulang tahun belum tiba
Kenapa usia bukan sebuah pembagian
Mengurangkan dua tanggal menghasilkan hitungan hari, dan itulah satu-satunya hal eksak yang dihasilkan sebuah tanggal lahir. Usia dalam tahun apa pun yang diturunkan dari hitungan itu adalah penilaian tentang panjang setahun, dan penilaian itulah tempat kesalahannya berada.
Penurunan yang menggoda adalah =INT((TODAY()-A2)/365.25). Konstanta itu ada untuk menyerap tahun kabisat: satu blok empat tahun yang memuat satu hari kabisat membentang 365 x 4 + 1 hari, yaitu 1461, dan 1461 dibagi 4 tepat 365.25. Itulah tahun Yulian, dan karena itu rumus ini tampak cukup wajar sehingga ada di mana-mana.
Kalender yang dipakai bukan kalender Yulian. Aturan Gregorian menghapus hari kabisat pada tahun abad yang tidak habis dibagi 400, jadi 1900 bukan tahun kabisat dan 2100 tidak akan menjadi, sedangkan 2000 memang kabisat. Sepanjang 400 tahun itu berarti 97 hari kabisat dan bukan 100, sehingga rata-rata tahun Gregorian adalah 365 + 97/400 hari, yaitu 365.2425. Kalikan 365.25 dengan 400 dan Anda mendapat 146,100 hari; kalender memberikan 146,097.
Pembaginya sedikit terlalu besar, sehingga perkiraannya berjalan di belakang usia sejati, dan ketika tertinggal satu satuan penuh, bilangan bulat hasil pemotongan kekurangan satu tahun. Seseorang yang lahir pada 28 Februari 1900 telah menjalani 36,524 hari pada ulang tahunnya yang ke seratus, karena tahun-tahun itu memuat 24 hari kabisat dan bukan 25. 36,524 dibagi 365.25 adalah 99.997, jadi INT mencetak 99 untuk seorang nenek berusia seratus tahun.
Membagi dengan 365 dan bukan 365.25 gagal ke arah sebaliknya, karena 365 lebih pendek daripada tahun sungguhan. =INT((TODAY()-A2)/365) melaporkan ulang tahun berikutnya sebagai sudah terlewiti selama sebanyak hari sebelumnya seseorang telah mengumpulkan hari kabisat, kira-kira 10 hari terakhir dari setiap tahun usia bagi orang berusia 40 tahun yang tahun-tahunnya mencakup 10 hari kabisat. Keduanya bukan artefak pembulatan, jadi ROUND tidak bisa memperbaikinya. Pakai pembagian untuk pengelompokan populasi dan sumbu grafik, ketika selisih setahun ke mana pun tidak mengubah apa pun; pakai hitungan kalender ketika angka itu menggambarkan seseorang.
Menghitung usia di Excel
DATEDIF(start_date, end_date, unit) mengembalikan jumlah bulat satuan kalender lengkap di antara dua tanggal. Satuan yang mengubahnya menjadi usia adalah "Y": tahun penuh, yang mengurus panjang bulan, tahun kabisat, dan gerbang ulang tahun tanpa logika apa pun dari Anda.
Tahun penuh dengan DATEDIF
Ketik =DATEDIF(A2,TODAY(),"Y") di samping tanggal lahir dan format hasilnya sebagai angka umum. TODAY() membuatnya tetap hidup: kolom itu dihitung ulang saat buku kerja dibuka, jadi usia-usia itu memperbarui dirinya sendiri.
Dua mode kegagalan layak diketahui. Jika tanggal mulai lebih lambat daripada tanggal akhir, yaitu tanggal lahir di masa depan atau hari dan bulan tertukar, DATEDIF mengembalikan error dan bukan angka negatif, dan itu jujur. A2 yang kosong lebih buruk: Excel membaca sel kosong sebagai awal kalender tanggalnya dan bukan sebagai data yang hilang, jadi Anda mendapat hitungan tahun yang besar dan tidak berarti dan bukan sel kosong. Lindungi sebagai =IF(A2="","",DATEDIF(A2,TODAY(),"Y")).
Hitungan yang lain keluar langsung dari selisih hari. Total hari yang telah dijalani adalah =TODAY()-A2 yang diformat sebagai angka. Minggu penuh adalah =INT((TODAY()-A2)/7).
Jika tanggal lahir berupa teks dan bukan tanggal
Pengurangan dan DATEDIF sama-sama butuh tanggal seri sungguhan. Baris yang ditempel dari ekspor atau CSV sering datang sebagai teks rata kiri, dan tandanya adalah error dari =A2+0. Konversikan di titik pemakaian: =DATEDIF(DATEVALUE(A2),TODAY(),"Y").
DATEVALUE membaca teks itu memakai pengaturan regional Anda, jadi 03/04/1990 adalah 4 Maret di London dan 3 April di New York. Jika satu kolom penuh meleset beberapa bulan, bangun ulang tanggalnya dari bagian-bagiannya dengan =DATE(RIGHT(A2,4),MID(A2,4,2),LEFT(A2,2)), disesuaikan dengan urutan yang benar-benar Anda punya, daripada berharap pengurainya sependapat dengan Anda.
Usia di Excel dalam tahun dan bulan
Penulisan lengkapnya memakai tiga panggilan DATEDIF dengan tiga satuan, karena setiap satuan menjawab pertanyaan yang berbeda. "Y" menghitung tahun penuh sejak lahir, "YM" menghitung bulan penuh sejak ulang tahun terakhir sehingga nilainya selalu 0 sampai 11, dan "MD" menghitung hari sejak peringatan bulanan terakhir:
=DATEDIF(A2,TODAY(),"Y")&" years, "&DATEDIF(A2,TODAY(),"YM")&" months, "&DATEDIF(A2,TODAY(),"MD")&" days"
Untuk tahun dan bulan saja, yaitu permintaan yang biasa untuk anak kecil atau peringatan masa layanan, hilangkan suku ketiga: =DATEDIF(A2,TODAY(),"Y")&" years, "&DATEDIF(A2,TODAY(),"YM")&" months". Kesalahan yang umum adalah memakai "M" untuk komponen bulan. "M" mengembalikan total bulan penuh sejak lahir, ratusan untuk orang dewasa, bukan sisanya.
Total bulan tetap layak diketahui sebagai pemeriksaan silang: untuk tanggal yang biasa, =DATEDIF(A2,TODAY(),"M") dibagi bulat dengan 12 sepakat dengan "Y", dan MOD(DATEDIF(A2,TODAY(),"M"),12) sepakat dengan "YM". Ketika keduanya cocok dengan usia tiga bagian Anda, rumusnya baik-baik saja dan tanggal inputnya yang membuat Anda terkejut.
Satu catatan pada komponen hari. "MD" mengukur terhadap tanggal hari pada bulan dari hari jadi, dan cara Excel menangani tanggal mulai yang lebih besar daripada yang diizinkan bulan akhir adalah keanehan yang sudah lama ada: kelahiran pada tanggal 29, 30, atau 31 bisa melaporkan sisa hari yang janggal. Bagian tahun dan bulan bisa diandalkan; jika hari-harinya tampak salah, hitung sendiri dari hari jadi yang digeser dan jangan memercayai "MD" pada baris itu.
Menghitung usia di Google Sheets
Sheets mengimplementasikan DATEDIF dengan tiga argumen yang sama dan kode satuan yang sama, jadi setiap rumus di halaman ini ditempel ke Sheets tanpa perubahan. Tidak ada rumus usia khusus Sheets yang perlu dipelajari, hanya perbedaan lingkungan.
Rumus-rumus yang sama
Usia tepat: =DATEDIF(A2,TODAY(),"Y"). Usia lengkap: =DATEDIF(A2,TODAY(),"Y")&" years, "&DATEDIF(A2,TODAY(),"YM")&" months, "&DATEDIF(A2,TODAY(),"MD")&" days". Per posisi tanggal di B2: =DATEDIF(A2,B2,"Y"). Tanpa DATEDIF: =YEAR(TODAY())-YEAR(A2)-(TODAY()<DATE(YEAR(TODAY()),MONTH(A2),DAY(A2))).
YEARFRAC, DATE, DATEVALUE, dan MOD semuanya ada dengan makna yang sama, dan TODAY() tidak mengambil argumen seperti di Excel. Untuk menghentikan sebuah usia bergerak, yaitu potret yang dibaca orang lain, tempel hasilnya kembali menimpa rumus-rumus itu sebagai nilai, karena tidak ada yang membuat TODAY() menjadi statis.
Hal janggal khas Sheets
Sel hasil bisa mewarisi format tanggal dan menampilkan usia sebagai hitungan hari dari awal kalender, yang tampak seperti data rusak padahal hanya format. Atur Format menjadi Number.
Teks yang belum dibaca Sheets sebagai tanggal berkelakuan seperti di Excel: bungkus dengan DATEVALUE atau bangun dengan DATE(1990,5,15). Sheets menentukan apa yang merupakan tanggal dari locale spreadsheet itu sendiri, bukan dari penontonnya, jadi ujilah kolom yang mencurigakan dengan mengalikannya dengan 1: tanggal sungguhan menghasilkan angka lima digit, teks menghasilkan error. Dan seperti di Excel, DATEDIF memberi error ketika tanggal mulai berada setelah tanggal akhir, jadi tanggal lahir di masa depan dan entri hari-bulan yang tertukar terlihat identik.
Usia pada tanggal tertentu di Excel
Sering kali pertanyaannya bukan usia hari ini, melainkan usia pada tanggal penerimaan kerja, tanggal jatuh tempo, awal tahun ajaran, atau tenggat sebuah formulir. Gantikan TODAY() dengan tanggal referensi dan semua yang di atas bekerja tanpa perubahan, karena DATEDIF tidak pernah peduli dari mana tanggal keduanya berasal.
Memakai sel referensi
Tanggal lahir di A2, tanggal acuan di B2, lalu =DATEDIF(A2,B2,"Y"). Untuk penulisan lengkapnya, tukar argumen kedua di ketiga panggilan itu: =DATEDIF(A2,B2,"Y")&" years, "&DATEDIF(A2,B2,"YM")&" months, "&DATEDIF(A2,B2,"MD")&" days". Menyimpan tanggalnya di B2 dan bukan mengetiknya ke dalam rumus adalah yang membuat satu kolom bisa menjawab beberapa tanggal acuan sekaligus.
Untuk tanggal tetap, bangun dengan DATE agar pengaturan regional tidak dapat menafsir ulang: =DATEDIF(A2,DATE(2030,6,15),"Y"). Hindari =DATEDIF(A2,"15/06/2030","Y"), karena Excel menyelesaikan teks itu terhadap mesin yang membaca berkasnya dan buku kerjanya berubah perilaku ketika orang lain membukanya.
Rumus yang menghindari DATEDIF mengikuti substitusi yang sama, dengan tanggal referensi dua kali: =YEAR(B2)-YEAR(A2)-(B2<DATE(YEAR(B2),MONTH(A2),DAY(A2))).
Ketika kedua tanggal bukan lahir dan hari ini
Usia adalah kasus khusus dari rentang antara dua tanggal: lahir ditambah hari ini. Ketika pertanyaan sesungguhnya adalah waktu yang berjalan antara dua tanggal apa pun, yaitu masa kontrak, masa inap, atau proyek, DATEDIF dengan tanggal yang lebih awal di depan tetap bekerja, tetapi tidak ada yang spesifik usia di dalamnya. Kalkulator beda tanggal di situs ini adalah alat yang dibuat untuk dua tanggal mana pun; Kalkulator Usia dibuat dari lahir sampai hari ini.
Menghitung usia tanpa DATEDIF
DATEDIF itu luar biasa: Microsoft tidak pernah mencantumkannya di referensi fungsi, jadi ia tidak punya entri autocomplete dan tidak punya builder, ia bertahan demi kompatibilitas antarspreadsheet, dan beberapa aplikasi tidak mengimplementasikannya sama sekali. Alternatif yang portabel adalah pengurangan tahun dengan sebuah uji ulang tahun:
=YEAR(TODAY())-YEAR(A2)-(TODAY()<DATE(YEAR(TODAY()),MONTH(A2),DAY(A2)))
Tiga langkah. YEAR(TODAY())-YEAR(A2) adalah jawaban naifnya: selisih dalam tahun kalender, benar setelah ulang tahun berlalu dan kelebihan satu sebelum itu. DATE(YEAR(TODAY()),MONTH(A2),DAY(A2)) membangun ulang ulang tahun tahun ini dari bagian-bagian tanggal lahir. Lalu TODAY()<tanggal itu bernilai TRUE selama ulang tahun masih di depan, dan mengurangkan TRUE memaksanya menjadi 1 sementara mengurangkan FALSE memaksanya menjadi 0, jadi penurunannya terjadi persis di jendela sebelum ulang tahun dan tidak di tempat lain.
Dua hal yang perlu dihormati. Pemaksaan tipe itulah mekanismenya, jadi di aplikasi yang menolak aritmetika atas nilai logis pakai bentuk panjang IF(TODAY()<DATE(YEAR(TODAY()),MONTH(A2),DAY(A2)),1,0) di tempat uji yang berada dalam kurung itu. Dan untuk tanggal lahir 29 Februari, DATE(2023,2,29) ternormalisasi ke 1 Maret 2023 karena tanggalnya meluap dari bulan yang tidak punya tanggal itu, jadi gerbangnya terbuka pada 1 Maret di tahun nonkabisat. Memanjangkan jalur ini ke sisa bulan memang bisa, tetapi menjadi panjang; kalau aplikasi Anda punya DATEDIF, pakailah, dan kalau Anda ingin usia desimal, pakai YEARFRAC di bawah.
YEARFRAC dan usia desimal
YEARFRAC(start_date, end_date, basis) mengembalikan pecahan tahun di antara dua tanggal, jadi =YEARFRAC(A2,TODAY(),1) mencetak sesuatu seperti 39.42 untuk orang yang lewat sedikit lebih dari lima bulan dari ulang tahunnya yang ke tiga puluh sembilan, dan INT darinya memberi tahun penuh.
Argumen basis memilih sebuah konvensi hitung hari, dan konvensi-konvensi itu konvensi keuangan dan bukan konvensi kalender. Actual/actual mengukur hari sungguhan terhadap panjang rata-rata tahun-tahun yang dicakup. Actual/360 dan actual/365 membagi hari sungguhan dengan tahun nominal yang tetap. Keluarga 30/360 berpura-pura setiap bulan punya 30 hari, yang bertentangan dengan ulang tahun sungguhan dan menumpuk di dekat batas. Sebutkan basisnya secara eksplisit: =YEARFRAC(A2,TODAY(),1). Jangan bergantung pada default yang dihilangkan, karena Excel dan Google Sheets tidak harus sepakat tentangnya dan Sheets menerima lebih sedikit kode basis.
=INT(YEARFRAC(A2,TODAY(),1)) adalah cara jujur untuk menarik usia bulat darinya, dan untuk kebanyakan tanggal lahir hasilnya sama dengan DATEDIF; ketika keduanya berbeda, DATEDIF-lah yang eksak secara kalender. Jadi perlakukan YEARFRAC sebagai alat desimal: guna nyatanya adalah ketika Anda memang ingin pecahannya, yaitu statistik berbobot usia, jatah yang diproporsikan, perolehan masa kerja, atau model yang memperlakukan usia sebagai besaran kontinu. Dan perhatikan bahwa basis actual/365 membagi dengan 365, karena itulah ia mengambang ke atas persis seperti yang dilakukan =INT((TODAY()-A2)/365).
Menghitung usia di SQL
SQL adalah tempat di mana rumus naif bukan sekadar perkiraan melainkan salah secara sistematis, karena DATEDIFF klasik menghitung lintasan batas dan bukan satuan yang telah berjalan. Mesin-mesin menyelesaikannya secara berbeda, jadi jawabannya bergantung pada basis data mana Anda berada.
SQL Server: DATEDIFF menghitung batas tahun, bukan tahun
DATEDIFF(datepart, start, end) mengembalikan berapa kali datepart itu berganti di antara dua tanggal. Seseorang yang lahir pada 31 Desember 1990 menghasilkan DATEDIFF(year, birth, GETDATE()) = 34 pada 1 Januari 2024, karena 34 tahun baru telah dilintasi. Orang itu berusia 33, sebab ia menjadi 33 pada 31 Desember sebelumnya. Siapa pun yang ulang tahunnya belum tiba tahun ini keluar persis satu tahun terlalu tua, dan kuerinya tampak baik-baik saja karena fungsi itu melakukan apa yang ia dokumentasikan.
Koreksi standar mengurangkan satu ketika hari jadi belum tercapai, bentuknya sama dengan rumus Excel yang menghindari DATEDIF, ditulis sebagai satu pernyataan yang bisa langsung ditempel:
SELECT DATEDIFF(year, birth, GETDATE()) - CASE WHEN DATEADD(year, DATEDIFF(year, birth, GETDATE()), birth) > GETDATE() THEN 1 ELSE 0 END AS age FROM people;
Mekanismenya adalah DATEADD: menambahkan kembali hitungan tahun yang naif ke tanggal lahir menghasilkan tanggal ketika ulang tahun ke N orang itu jatuh. Jika tanggal itu masih di depan hari ini, hitungannya kelebihan satu. Utamakan ini daripada membandingkan MONTH dan angka hari dengan tangan, karena ia menangani ulang tahun 29 Februari tanpa cabang tambahan.
Satu detail penguncian: SQL Server menarik mundur tanggal tujuan yang tidak sah ke hari terakhir yang sah dalam bulan itu, jadi DATEADD(year, 23, '2000-02-29') menghasilkan 28 Februari 2023 dan bukan meluap ke Maret. Karena itu, ulang tahun 29 Februari naik satu hari lebih cepat di sini daripada yang dilakukan DATEDIF Excel di tahun nonkabisat.
SQL Server: tahun, bulan, dan hari
Terapkan koreksi yang sama satu tingkat lebih bawah. Hitungan bulan penuh yang terkoreksi adalah DATEDIFF(month, birth, GETDATE()) - CASE WHEN DATEADD(month, DATEDIFF(month, birth, GETDATE()), birth) > GETDATE() THEN 1 ELSE 0 END. Beri alias fm di tabel turunan atau CROSS APPLY agar ekspresinya cukup ditulis sekali.
Dari fm bagian-bagiannya tidak butuh logika tanggal lagi: tahunnya fm / 12, karena kedua operandonya bilangan bulat jadi SQL Server memotongnya, sisa bulannya fm % 12, dan harinya adalah ujung setelah pergeseran, yaitu DATEDIFF(day, DATEADD(month, fm, birth), GETDATE()). Tiga sekawan itu eksak, dan itulah yang dipakai ketika sebuah antarmuka menampilkan usia bersatuan campuran dan bukan bilangan bulat polos.
MySQL dan PostgreSQL
TIMESTAMPDIFF milik MySQL menghitung satuan penuh dan tidak butuh koreksi: SELECT TIMESTAMPDIFF(YEAR, birth, CURDATE()) AS age FROM people. Total harinya adalah DATEDIFF(CURDATE(), birth), karena DATEDIFF yang ini mengambil tanggal yang lebih akhir di depan dan mengembalikan hari, yaitu fungsi yang berbeda dari milik SQL Server meski namanya sama. Untuk satuan campuran, TIMESTAMPDIFF(MONTH, birth, CURDATE()) / 12 memberi tahun dan MOD(TIMESTAMPDIFF(MONTH, birth, CURDATE()), 12) memberi sisa bulan.
PostgreSQL paling langsung, karena AGE mengembalikan interval kalender: SELECT EXTRACT(YEAR FROM AGE(CURRENT_DATE, birth)) AS age memberi tahun penuh yang eksak, dan menghapus EXTRACT menampilkan keseluruhan uraian tahun, bulan, dan hari tanpa koreksi. Satu jebakan: AGE peka zona waktu ketika bertemu dengan timestamp yang punya zona, jadi konversikan kolom itu ke date sebelum membandingkannya dengan CURRENT_DATE.
Kapan sebaiknya memakai Kalkulator Usia
Rumus adalah pilihan tepat ketika usia adalah satu kolom dalam tabel berisi ratusan baris. Rumus adalah bentuk yang salah ketika Anda butuh jawabannya sekali dan ingin semua angka turunannya menyertai, karena itu berarti enam rumus yang dirakit untuk melakukan apa yang dilakukan satu halaman.
Kalkulator Usia yang ditautkan di bawah menerima tanggal lahir dan mengembalikan usia tepat dalam tahun, bulan, dan hari, total hari yang telah dijalani, minggu penuh, jam, dan hitung mundur ke ulang tahun berikutnya. Hitungan harinya adalah selisih mentah, jadi satuan-satuan turunannya sepakat satu sama lain: angka jamnya adalah hari yang dijalani dikali 24, sehingga itu ukuran hari penuh dan bukan hitungan jam lahir yang presisi. Tanda zodiak Tiongkok dan Barat datang berdampingan dengan usia, yang Tiongkok ditetapkan terhadap tanggal Tahun Baru Imlek yang sungguhan dan bukan 1 Januari, sebab tahun Tiongkok tidak dimulai pada tahun baru Gregorian. Tabel itu mencakup kelahiran dari 1940 sampai 2030; di luar itu alatnya jatuh kembali ke tahun Gregorian, jadi anggap zodiak untuk tanggal lahir yang lebih awal sebagai tidak andal.
Batas-batasnya layak diketahui. Ia bekerja hanya dengan tanggal, tanpa input jam atau menit. Ia memakai hari ini milik perangkat Anda sendiri, jadi mesin dengan jam yang salah menghasilkan usia yang salah. Tanggal lahir di masa depan tidak ditolak; ia menghasilkan hitungan negatif, jadi periksa tanggalnya jika angkanya tampak mustahil. Halaman itu menyatakan bahwa alatnya bukan untuk verifikasi usia secara hukum atau resmi, dan apa pun yang Anda masukkan tidak disimpan atau dikirim ke mana pun.
- Rumus untuk satu kolom berisi usia di buku kerja atau satu kolom isian di sebuah kueri.
- Kalkulator untuk satu orang: satuan lengkap, hari dan minggu yang dijalani, jam, hitung mundur ulang tahun berikutnya.
- Zodiak Tiongkok pada tanggal Tahun Baru Imlek yang sungguhan, andal untuk kelahiran 1940 sampai 2030.
- Bukan untuk verifikasi usia secara hukum atau resmi, dan tanpa presisi jam kejadian.
- Dua tanggal yang bukan lahir dan hari ini: pakai Kalkulator beda tanggal sebagai gantinya.
Pertanyaan yang sering diajukan
Apa rumus terbaik untuk menghitung usia dari tanggal lahir di Excel?
=DATEDIF(A2,TODAY(),"Y") dengan tanggal lahir di A2. Rumus itu menghitung tahun kalender penuh, sehingga panjang bulan, tahun kabisat, dan ulang tahun yang belum tiba sudah beres secara rancangan, dan ia memberi error alih-alih angka negatif jika tanggalnya terbalik urutannya. Format hasilnya sebagai angka, dan pastikan A2 adalah tanggal sungguhan: kalikan dengan 1 dan Anda harus mendapat nomor seri lima digit.
Kenapa saya tidak menemukan DATEDIF di daftar fungsi Excel?
Karena Microsoft tidak pernah mendokumentasikannya. Fungsi itu ada demi kompatibilitas dengan spreadsheet lama, jadi ia menghitung dengan benar tetapi tidak punya entri autocomplete, tidak punya halaman Help di banyak versi, dan tidak punya builder fungsi, sehingga orang mengiranya tidak tersedia dan memilih pembagian. Jika Anda ingin rumus yang terdokumentasi dan portabel, pakai =YEAR(TODAY())-YEAR(A2)-(TODAY()<DATE(YEAR(TODAY()),MONTH(A2),DAY(A2))).
Bagaimana cara menampilkan usia dalam tahun dan bulan di Excel?
Gabungkan dua panggilan DATEDIF dengan satuan berbeda: =DATEDIF(A2,TODAY(),"Y")&" years, "&DATEDIF(A2,TODAY(),"YM")&" months". "Y" memberi tahun penuh sejak lahir, "YM" memberi bulan penuh sejak ulang tahun terakhir dan selalu 0 sampai 11. Tambahkan &", "&DATEDIF(A2,TODAY(),"MD")&" days" untuk usia tiga bagian. Kesalahan yang biasa adalah "M" untuk komponen bulan: satuan itu mengembalikan total bulan sejak lahir, bukan sisanya.
Apakah membagi dengan 365.25 cara yang akurat untuk menghitung usia?
Perkiraan yang bisa dipertanggungjawabkan, tetapi fakta yang tidak andal. Satu blok empat tahun dengan satu hari kabisat membentang 1461 hari dan 1461/4 adalah 365.25, jadi konstanta itu punya dasar, tetapi rata-rata tahun Gregorian adalah 365.2425 karena tahun abad seperti 1900 dan 2100 bukan tahun kabisat. Pembaginya sedikit terlalu besar, jadi perkiraannya berjalan di belakang usia sejati dan bilangan bulat hasil pemotongannya keluar kekurangan setahun pada rentang yang kehilangan hari kabisat: 36,524 hari dibagi 365.25 memberi 99 padahal usianya 100. Membagi dengan 365 mengambang ke arah lain.
Bagaimana menghitung usia pada tanggal tertentu dan bukan pada hari ini?
Pakai tanggal referensi di mana pun rumus memakai TODAY(). Dengan tanggal acuan di B2: =DATEDIF(A2,B2,"Y") untuk tahun penuh, atau =DATEDIF(A2,B2,"Y")&" years, "&DATEDIF(A2,B2,"YM")&" months" untuk dua bagian. Untuk tanggal tetap tulis =DATEDIF(A2,DATE(2030,6,15),"Y") dan bukan tanggal berupa teks, karena teks dibaca ulang mengikuti pengaturan regional orang yang membuka berkas itu. Untuk dua tanggal yang bukan lahir dan hari ini, kalkulator beda tanggal lebih cocok.
Apakah Google Sheets menghitung usia sama dengan Excel?
Ya. Sheets mendukung DATEDIF dengan argumen dan kode satuan yang identik, ditambah TODAY, YEARFRAC, DATE, DATEVALUE, dan MOD, sehingga rumus-rumusnya berpindah tanpa perubahan. Keanehan khas Sheets ada pada tampilan: sel yang mewarisi format tanggal memperlihatkan angka usia kecil sebagai tanggal di dekat awal kalender, dan itu hanya format. Atur Format menjadi Number. Sheets juga menguraikan tanggal yang diketik menurut locale spreadsheet itu sendiri, bukan penontonnya.
Bisakah saya memakai YEARFRAC untuk menghitung usia?
Bisa, asal Anda memahami nilai kembangannya. =YEARFRAC(A2,TODAY(),1) memberi usia desimal seperti 39.42, dan INT darinya memberi tahun penuh yang cocok dengan DATEDIF untuk kebanyakan tanggal lahir. Basis memilih konvensi hitung hari, yaitu actual/actual, actual/360, actual/365, atau keluarga 30/360, dan pembagi nominal 360 atau 365 mengambang terhadap kalender seperti halnya membagi dengan 365. Sebutkan basis 1 dan jangan memercayai default, karena Excel dan Sheets tidak harus sepakat dan Sheets mendukung lebih sedikit kode.
Kenapa DATEDIFF SQL Server salah untuk usia?
Fungsinya tidak rusak, ia mengukur hal lain: DATEDIFF(year, start, end) menghitung batas tahun yang dilintasi, bukan tahun penuh yang berjalan, sehingga orang yang lahir 31 Desember 1990 mengembalikan 34 pada 1 Januari 2024 padahal usianya 33. Koreksi standarnya adalah DATEDIFF(year, birth, GETDATE()) - CASE WHEN DATEADD(year, DATEDIFF(year, birth, GETDATE()), birth) > GETDATE() THEN 1 ELSE 0 END. Menambahkan kembali hitungan naif ke tanggal lahir memberi ulang tahun ke N itu, dan jika tanggalnya masih di depan hari ini, hitungannya kelebihan satu.
Fungsi SQL mana yang menghitung tahun penuh untuk usia?
Tergantung mesinnya. TIMESTAMPDIFF(YEAR, birth, CURDATE()) milik MySQL menghitung satuan penuh dan tidak butuh koreksi. AGE milik PostgreSQL mengembalikan interval yang sadar kalender, jadi EXTRACT(YEAR FROM AGE(CURRENT_DATE, birth)) adalah usia bulat yang eksak; konversikan dulu kolom timestamp berzona ke date. DATEDIFF milik SQL Server adalah yang butuh koreksi CASE itu. Waspadai nama yang sama: DATEDIFF MySQL mengambil tanggal yang lebih akhir di depan dan mengembalikan hari, tidak seperti penghitung batas tiga argumen milik SQL Server.
Adakah alat gratis yang memberi usia tepat, hari yang dijalani, dan zodiak?
Kalkulator Usia yang ditautkan di halaman ini menerima tanggal lahir dan mengembalikan usia tepat dalam tahun, bulan, dan hari, total hari yang telah dijalani, minggu penuh, jam, dan hitung mundur ke ulang tahun berikutnya, ditambah tanda zodiak Tiongkok dan Barat. Zodiak Tiongkok memakai tanggal Tahun Baru Imlek yang sungguhan, andal untuk kelahiran dari 1940 sampai 2030. Ia bekerja hanya dengan tanggal, memakai tanggal perangkat Anda, tidak dimaksudkan untuk verifikasi usia secara hukum atau resmi, dan berjalan di peramban Anda tanpa mengirim apa pun ke server.
Bagaimana cara tahu sudah berapa hari, minggu, atau jam saya hidup?
Kurangkan tanggal lahir dari hari ini: jumlah hari adalah satu-satunya angka yang keluar dengan tepat dari dua tanggal. Minggu penuh adalah angka itu dibagi 7, dan jam adalah hari dikali 24. Jangan memakai rumus usia dalam tahun untuk ini: tahun adalah durasi yang berubah-ubah (tahun kabisat termasuk), sedangkan hari, minggu, dan jam adalah hitungan tetap. Kalkulator yang ditautkan di atas menampilkan hari, minggu, dan jam yang dijalani sekaligus.
Bagaimana menghitung usia tepat dalam tahun, bulan, dan hari tanpa menulis rumus?
Ketik tanggal lahir Anda di kalkulator usia pada halaman ini: ia mengembalikan usia dalam tahun, bulan, dan hari penuh memakai kalender sungguhan, bukan pembagian perkiraan, dan menambahkan hitung mundur ke ulang tahun berikutnya. Untuk dua tanggal apa pun yang bukan kelahiran (tenggat, hari jadi), gunakan kalkulator perbedaan tanggal di situs ini.