Hàm tính tuổi trong Excel từ ngày tháng năm sinh

Tính tuổi trong Excel bằng DATEDIF, YEARFRAC hoặc chỉ từ năm sinh; hiển thị tuổi dạng năm-tháng-ngày, tính tuổi tại một ngày cụ thể và cách sửa lỗi hay gặp.

Muốn tính tuổi chính xác trong Excel từ ngày tháng năm sinh, cách gọn nhất là =DATEDIF(B2,TODAY(),"Y") — kết quả là số tuổi tròn (đã qua sinh nhật hay chưa đều được tính đúng). Nếu chỉ có năm sinh, dùng =YEAR(TODAY())-B2. Bài này giải thích từng cách, kèm ví dụ hồ sơ nhân sự, danh sách học sinh và các lỗi thường gặp.

Dấu phân cáchVí dụ trong bài dùng dấu phẩy ,. Nếu máy đặt định dạng vùng Việt Nam, Excel có thể yêu cầu dấu chấm phẩy: =DATEDIF(B2;TODAY();"Y").

1. Hàm DATEDIF — cách tính tuổi chuẩn nhất

=DATEDIF(ngày_bắt_đầu, ngày_kết_thúc, "đơn_vị")
Đối sốÝ nghĩa
ngày_bắt_đầuNgày sinh (ô chứa ngày thật, không phải chữ)
ngày_kết_thúcThường là TODAY() hoặc một ngày mốc
"Y"Số năm tròn — chính là tuổi
"YM"Số tháng lẻ sau khi bỏ số năm
"MD"Số ngày lẻ sau khi bỏ năm và tháng
"M", "D"Tổng số tháng / tổng số ngày

DATEDIF là hàm “ẩn”: Excel không gợi ý khi bạn gõ, nhưng vẫn chạy bình thường. Ngày bắt đầu phải nhỏ hơn ngày kết thúc, nếu không sẽ báo #NUM!.

2. Ví dụ thực tế

Hồ sơ nhân sự: tuổi hiện tại

Cột B là ngày sinh, tại C2 gõ =DATEDIF(B2,TODAY(),"Y") rồi kéo xuống. Mỗi lần mở file, tuổi tự cập nhật.

Tuổi tại một ngày cố định

Tuyển sinh, xét nghỉ hưu hay báo cáo cuối năm thường cần tuổi tính đến một ngày mốc, ví dụ 31/12/2026:

=DATEDIF(B2,DATE(2026,12,31),"Y")

Dùng DATE(năm,tháng,ngày) thay vì gõ “31/12/2026” trong công thức để không phụ thuộc định dạng ngày của máy.

Chỉ có năm sinh

Danh sách hộ gia đình, đoàn viên… thường chỉ ghi năm sinh (ví dụ 1990). Công thức:

=YEAR(TODAY())-B2

Kết quả là “tuổi theo năm” — có thể lớn hơn tuổi thật 1 đơn vị nếu người đó chưa đến sinh nhật trong năm nay.

3. Hiển thị tuổi dạng “năm – tháng – ngày”

Với trẻ mầm non, tiêm chủng hay thâm niên công tác, cần ghi đầy đủ:

=DATEDIF(B2,TODAY(),"Y")&" tuổi "&DATEDIF(B2,TODAY(),"YM")&" tháng "&DATEDIF(B2,TODAY(),"MD")&" ngày"

Kết quả dạng 5 tuổi 3 tháng 12 ngày. Với trẻ dưới 1 tuổi, bạn có thể chỉ hiện tổng số tháng: =DATEDIF(B2,TODAY(),"M")&" tháng".

Lưu ýMicrosoft khuyến cáo đối số "MD" có thể cho kết quả sai trong một số trường hợp cuối tháng (ví dụ sinh ngày 31). Nếu cần độ chính xác tuyệt đối về số ngày, hãy kiểm tra lại vài dòng bằng tay.

4. YEARFRAC — tuổi có phần thập phân

=YEARFRAC(B2,TODAY(),1)

Trả về số năm dạng thập phân, ví dụ 34,62. Đối số thứ 3 là 1 (tính theo số ngày thực tế) cho kết quả sát nhất. Muốn lấy tuổi tròn, bọc thêm INT: =INT(YEARFRAC(B2,TODAY(),1)). Không dùng ROUND vì 34,62 sẽ bị làm tròn thành 35 tuổi.

Tránh công thức =(TODAY()-B2)/365: do năm nhuận, kết quả có thể lệch đúng vào những ngày sát sinh nhật.

5. Lỗi hay gặp

  • #VALUE!: ngày sinh đang là chữ (thường do nhập 25/12/1990 trên máy định dạng tháng/ngày, hoặc dán từ phần mềm khác). Xem cách nhận biết và chuyển đổi trong bài hàm ngày tháng trong Excel.
  • #NUM!: ngày sinh lớn hơn ngày kết thúc, thường do nhầm năm (2099 thay vì 1999).
  • Kết quả hiện dạng ngày (ví dụ 03/02/1900): ô kết quả đang định dạng Date — chuyển về Home → Number Format → General.
  • Ô trống ra tuổi 126: ô ngày sinh trống được hiểu là ngày 0. Dùng =IF(B2="","",DATEDIF(B2,TODAY(),"Y")).

6. Trên Google Sheets

Google Sheets hỗ trợ cả DATEDIF và YEARFRAC với cú pháp y hệt, kể cả các đơn vị "Y", "YM", "MD". Hãy kiểm tra File → Settings → Locale là Vietnam để Sheets hiểu đúng ngày dạng dd/mm/yyyy. Muốn phân loại theo nhóm tuổi sau khi tính, kết hợp với hàm IF.

Zalo