Menu

Cách tính tuổi trong Excel từ ngày sinh

=DATEDIF(B2,TODAY(),"Y") trả về số tuổi tròn năm của người sinh vào ngày trong B2. Tính tuổi tại một ngày cụ thể, tính theo năm, tháng và ngày, và tính tuổi không cần DATEDIF.

Mọi bảng tính trên trang này đều trực tiếp: đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

=DATEDIF(B2,TODAY(),"Y") trả về số tuổi tròn năm của người sinh vào ngày trong B2. DATEDIF đếm số năm tròn giữa hai ngày, còn TODAY() cung cấp ngày thứ hai, nên tuổi tăng thêm một vào mỗi dịp sinh nhật.

Tuổi từ ngày sinh
C2
ABC
1NameBornAge
2Ana1990-05-1436
3Ben1985-11-3040
4Chloe2001-02-2825
5Dan1978-10-1047
6Eva2010-07-0416
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

Tuổi trong cột C được tính dựa trên ngày hôm nay, nên chúng thay đổi theo thời gian trong năm. Đổi một ngày sinh trong cột B thì tuổi bên cạnh cũng đổi theo. Công thức có ba đối số: ngày bắt đầu (ngày sinh), ngày kết thúc (hôm nay) và đơn vị, "Y" nghĩa là số năm tròn.

Tuổi tại một ngày cụ thể

Để lấy tuổi vào một ngày cố định, như ngày khai giảng năm học hay ngày ký hợp đồng, hãy nhập ngày đó vào một ô và dùng ô này thay cho TODAY(). Dấu $ trong $F$2 giữ tham chiếu ở F2 khi công thức được điền xuống.

Tuổi tại một ngày cho trước
C2
ABCDEF
1NameBornAgeAs of
2Ana1990-05-14362026-10-01
3Ben1985-11-3040
4Chloe2001-02-2825
5Dan1978-10-1047
6Eva2010-07-0416
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

Vào ngày 2026-10-01, Ana 36 tuổi còn Dan 47 tuổi: sinh nhật ngày 10 tháng 10 của anh ấy chưa tới. Đổi F2 thành 2026-10-10 là Dan tròn 48 tuổi. Cách này cũng cho cùng một kết quả mỗi lần mở tệp, điều quan trọng khi số tuổi được đưa vào báo cáo. Xem trang DATEDIF để biết các đơn vị khác.

Tuổi theo năm, tháng và ngày

DATEDIF có các đơn vị cho phần còn dư sau số năm tròn: "YM" đếm số tháng sau năm tròn cuối cùng, còn "MD" đếm số ngày sau tháng tròn cuối cùng. Nối ba phần lại bằng & để viết số tuổi dưới dạng văn bản.

Năm, tháng và ngày
E2
ABCDEF
1BornYearsMonthsDaysAgeAs of
21990-05-143641736 years, 4 months, 17 days2026-10-01
31978-10-1047112147 years, 11 months, 21 days
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

Từ 1990-05-14 đến 2026-10-01 là 36 năm, 4 tháng và 17 ngày. Microsoft khuyên không nên dùng đơn vị "MD" vì trong một số trường hợp nó có thể trả về số ngày âm hoặc sai, chẳng hạn khi ngày sinh rơi vào ngày 31. Hãy kiểm tra lại số ngày khi ngày sinh rơi vào khoảng từ ngày 29 đến ngày 31.

Tính tuổi không cần DATEDIF

DATEDIF chạy được trên mọi phiên bản Excel nhưng không có trong danh sách hàm và không được gợi ý khi gõ công thức, nên một số người thích dùng YEARFRAC hơn. YEARFRAC(start,end,1) trả về số năm giữa hai ngày dưới dạng số thập phân, tính theo độ dài thật của từng năm (basis 1). INT bỏ đi phần lẻ.

DATEDIF và YEARFRAC đặt cạnh nhau
D2
ABCD
1BornAs ofDATEDIFYEARFRAC
21990-05-142026-10-013636
31978-10-102026-10-014747
42010-07-042026-10-011616
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

Hai cột khớp nhau: 36, 47 và 16. Nếu không có INT, YEARFRAC ở hàng cuối trả về khoảng 16,24, hữu ích khi bạn cần số tuổi dạng thập phân, ví dụ trong một trang tính thống kê.

Vì sao không nên chia cho 365

Một lối tắt phổ biến là =INT((F2-B2)/365): số ngày đã sống chia cho số ngày trong một năm. Cứ bốn năm lại có thêm một ngày nhuận, nên sau vài chục năm, công thức này sẽ tăng tuổi trước sinh nhật vài ngày: sớm 12 ngày với sinh nhật thứ 48.

Chia cho 365 bị lệch khi gần sinh nhật
D2
ABCDE
1BornAs ofDays livedDivide by 365DATEDIF
21990-05-142026-10-01132893636
31978-10-102026-10-01175234847
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

Với người sinh ngày 1978-10-10, phép chia cho 365 cho ra 48 tuổi vào ngày 2026-10-01, chín ngày trước sinh nhật thứ 48. DATEDIF cho ra 47. Chia cho 365,25 sửa được phần lớn các hàng nhưng vẫn sai ở một số ngày, nên hãy dùng DATEDIF hoặc YEARFRAC.

Luyện tập: tuổi vào ngày khai giảng

Đến lượt bạn
C2
ABCDE
1NameBornAgeAs of
2Ana2012-04-172026-09-01
Bấm vào một ô để xem công thức. Đổi một số hoặc công thức, bảng tính sẽ tự tính lại.

Đến lượt bạn: Trong C2, tính số tuổi tròn năm của Ana vào ngày trong E2.

Các bài kiểm tra ẩn sẽ đổi ngày trong E2, nên công thức phải đọc giá trị từ ô đó.

Vì sao tuổi lại hiện dưới dạng ngày

Nếu bạn gõ công thức tính tuổi vào một ô đang chứa ngày, hoặc vào một cột được định dạng ngày, Excel giữ nguyên định dạng ngày và hiển thị 36 thành 1900-02-05 (ngày thứ 36 trong hệ thống ngày của Excel; với thiết lập kiểu Mỹ, nó hiện là 2/5/1900). Con số bên dưới vẫn đúng. Chọn các ô rồi vào Home > Number Format > General (hoặc nhấn Ctrl+Shift+~, trên Mac là Control+Shift+~) là số tuổi hiện ra.

Câu hỏi thường gặp

Công thức tính tuổi trong Excel là gì?

=DATEDIF(B2,TODAY(),"Y"), với ngày sinh nằm trong B2. Công thức đếm số năm tròn từ ngày sinh đến hôm nay, nên tuổi chỉ tăng đúng vào ngày sinh nhật, không sớm hơn.

Làm sao để tính tuổi tại một ngày cụ thể trong Excel?

Nhập ngày đó vào một ô và dùng ô này thay cho TODAY(): =DATEDIF(B2,$F$2,"Y") cho ra tuổi tại ngày trong F2. Các dấu $ giữ cố định F2 khi bạn điền công thức xuống.

Làm sao để tính tuổi trong Excel mà không dùng DATEDIF?

Dùng =INT(YEARFRAC(B2,TODAY(),1)). YEARFRAC trả về số năm giữa hai ngày dưới dạng số thập phân, còn INT giữ lại phần năm tròn.

Vì sao công thức tính tuổi lại hiện ra một ngày như 1900-01-30?

Ô đó đang ở định dạng ngày, nên tuổi 30 được hiển thị thành ngày thứ 30 trong lịch của Excel. Chọn ô rồi đặt Home > Number Format thành General.

Vì sao chia cho 365 để tính tuổi lại sai?

Cứ bốn năm lại có một năm nhuận thêm một ngày, nên =INT((TODAY()-B2)/365) tính sinh nhật sớm vài ngày: người sinh ngày 1978-10-10 đã 48 tuổi theo công thức đó vào ngày 2026-10-01, sớm chín ngày so với sinh nhật thứ 48. DATEDIF đếm theo năm dương lịch nên không mắc lỗi này.

Hình minh họa các ngôn ngữ lập trình của Coddy

Học lập trình cùng Coddy

Bắt đầu