excel
Cách tính tuổi, thâm niên chính xác bằng hàm DATEDIF trong Excel

Để tính tuổi tròn trong Excel, dùng =DATEDIF(B2,TODAY(),"Y"), với B2 là ô ngày sinh. Để tính thâm niên dạng "11 năm 4 tháng", ghép hai lần DATEDIF với đơn vị "Y" và "YM". Hàm cho kết quả đúng theo ngày sinh nhật/ngày kỷ niệm, chính xác hơn hẳn cách lấy số ngày chia 365.
Bài này đi từ công thức cơ bản đến các tình huống hay làm sai trong hồ sơ nhân sự: đơn vị "MD" mà Microsoft khuyên không dùng, ngày sinh nhập dạng chữ, danh sách chỉ có năm sinh, và khác biệt giữa tuổi tròn với tuổi tính theo năm trong giấy tờ ở Việt Nam.
Dữ liệu mẫu
Bảng nhân sự, ô H1 là ngày chốt số liệu 31/12/2026:
| A | B | C | |
|---|---|---|---|
| 1 | Họ tên | Ngày sinh | Ngày vào làm |
| 2 | Nguyễn Văn An | 15/03/1990 | 01/08/2015 |
| 3 | Trần Thị Bình | 29/02/2000 | 15/11/2020 |
| 4 | Lê Văn Cường | 31/12/1985 | 31/01/2023 |
| 5 | Phạm Thị Dung | 05/10/2003 | 01/06/2026 |
Cột B và C phải là ngày thật của Excel (căn phải ô khi để mặc định), không phải chữ gõ trông giống ngày. Cách kiểm tra có ở mục "Lỗi thường gặp".
Dấu phân cách: bài dùng dấu phẩy ,. Nếu Excel báo lỗi công thức ngay khi Enter, máy bạn đang dùng dấu chấm phẩy, hãy thay , bằng ;.
Cú pháp hàm DATEDIF
=DATEDIF(ngày_bắt_đầu, ngày_kết_thúc, "đơn_vị")
- ngày_bắt_đầu: ngày sinh hoặc ngày vào làm.
- ngày_kết_thúc: ngày tính đến, thường là
TODAY()hoặc ô ngày chốt. Phải lớn hơn hoặc bằng ngày bắt đầu, nếu không hàm báo lỗi#NUM!. - đơn_vị: đặt trong dấu ngoặc kép.
| Đơn vị | Trả về | Ví dụ 01/08/2015 → 31/12/2026 |
|---|---|---|
"Y" |
Số năm tròn | 11 |
"M" |
Số tháng tròn | 136 |
"D" |
Tổng số ngày | 4170 |
"YM" |
Số tháng lẻ sau khi bỏ số năm tròn | 4 |
"YD" |
Số ngày lẻ sau khi bỏ số năm tròn | 152 |
"MD" |
Số ngày lẻ sau khi bỏ năm và tháng | Không nên dùng (xem phần dưới) |
Điều cần biết: DATEDIF là hàm "ẩn". Excel giữ nó để tương thích với bảng tính Lotus 1-2-3 cũ, nên khi gõ =DATE bạn sẽ không thấy DATEDIF trong danh sách gợi ý và cũng không có trong hộp Insert Function. Cứ gõ đầy đủ tên hàm, công thức vẫn chạy bình thường trên Excel 2010, 2016, 2019, 2021 và Microsoft 365. Google Sheets cũng có hàm DATEDIF với cách dùng giống hệt.
Bước 1: Tính tuổi tròn
Tại ô D2, gõ:
=DATEDIF(B2,$H$1,"Y")
Kéo xuống đến D5. Kết quả: An 36, Bình 26, Cường 41, Dung 23.
$H$1có dấu$để khi kéo công thức xuống, ô ngày chốt không bị trượt.- Muốn tính tuổi tại thời điểm mở file, thay
$H$1bằngTODAY():=DATEDIF(B2,TODAY(),"Y").
Trường hợp Cường sinh 31/12/1985 cho thấy hàm tính đúng đến từng ngày: tại ngày chốt 31/12/2026 anh vừa tròn 41 tuổi. Nếu ngày chốt là 30/12/2026 thì kết quả là 40.
Nên dùng TODAY() hay ô ngày chốt?
TODAY() tự thay đổi mỗi ngày, rất tiện cho bảng theo dõi. Nhưng với báo cáo đã nộp, hồ sơ xét thi đua hay danh sách gửi cấp trên, hãy dùng ô ngày chốt cố định. Nếu không, mở file vào tháng sau số liệu sẽ tự đổi và không còn khớp với bản đã in.
Bước 2: Tính thâm niên dạng "x năm y tháng"
Tại ô E2:
=DATEDIF(C2,$H$1,"Y")&" năm "&DATEDIF(C2,$H$1,"YM")&" tháng"
Giải thích:
DATEDIF(C2,$H$1,"Y")lấy số năm tròn: 11.DATEDIF(C2,$H$1,"YM")lấy số tháng còn lại sau 11 năm: 4.- Dấu
&nối số và chữ thành một chuỗi: 11 năm 4 tháng.
Kết quả cả bảng: An 11 năm 4 tháng, Bình 6 năm 1 tháng, Cường 3 năm 11 tháng, Dung 0 năm 6 tháng.
Ẩn "0 năm" cho nhân viên mới
"0 năm 6 tháng" đọc hơi kỳ. Dùng hàm IF để bỏ phần năm khi bằng 0:
=IF(DATEDIF(C2,$H$1,"Y")=0,"",DATEDIF(C2,$H$1,"Y")&" năm ")&DATEDIF(C2,$H$1,"YM")&" tháng"
Dung sẽ hiện 6 tháng. Nếu bạn chưa quen hàm IF, xem bài hàm IF trong Excel cho người mới.
Lưu ý: kết quả dạng chữ dùng để hiển thị, không cộng trừ hay so sánh được. Nếu cần lọc "thâm niên từ 5 năm trở lên", hãy để một cột riêng chỉ có =DATEDIF(C2,$H$1,"Y").
Bước 3: Thêm số ngày lẻ mà không dùng "MD"
Nhiều bài hướng dẫn dùng DATEDIF(C2,$H$1,"MD") để lấy số ngày lẻ. Trang hỗ trợ của Microsoft ghi rõ đơn vị "MD" có thể cho kết quả âm, bằng 0 hoặc sai và khuyên không dùng. Lỗi thường lộ ra khi ngày bắt đầu là cuối tháng (ngày 29, 30, 31).
Cách tính an toàn: tìm ngày "kỷ niệm tháng" gần nhất bằng hàm EDATE, rồi lấy ngày chốt trừ đi.
=$H$1-EDATE(C2,DATEDIF(C2,$H$1,"M"))
DATEDIF(C2,$H$1,"M")= tổng số tháng tròn (An: 136).EDATE(C2,136)= ngày 01/08/2015 cộng 136 tháng = 01/12/2026.- 31/12/2026 trừ 01/12/2026 = 30 ngày.
Nếu ô kết quả hiện ra một ngày tháng kiểu 30/01/1900, chọn ô đó → tab Home → nhóm Number → chọn General.
Công thức đầy đủ "x năm y tháng z ngày":
=DATEDIF(C2,$H$1,"Y")&" năm "&DATEDIF(C2,$H$1,"YM")&" tháng "&($H$1-EDATE(C2,DATEDIF(C2,$H$1,"M")))&" ngày"
Kết quả: An 11 năm 4 tháng 30 ngày, Bình 6 năm 1 tháng 16 ngày, Cường 3 năm 11 tháng 0 ngày, Dung 0 năm 6 tháng 30 ngày.
Với Excel 365/2021, có thể viết gọn bằng hàm LET để không lặp lại công thức:
=LET(bd,C2,kt,$H$1,
y,DATEDIF(bd,kt,"Y"),
m,DATEDIF(bd,kt,"YM"),
d,kt-EDATE(bd,DATEDIF(bd,kt,"M")),
y&" năm "&m&" tháng "&d&" ngày")
LET đặt tên cho từng phần (bd = ngày bắt đầu, kt = ngày kết thúc, y/m/d = năm/tháng/ngày), dễ đọc và dễ sửa hơn. Hàm này không có trên Excel 2019 trở về trước.
Phần nâng cao: các tình huống hồ sơ thực tế
1. Tuổi tròn khác tuổi tính theo năm
Nhiều giấy tờ ở Việt Nam tính tuổi theo năm (lấy năm hiện tại trừ năm sinh), không xét đã qua sinh nhật hay chưa. Ví dụ tại ngày 28/10/2026, Cường sinh 31/12/1985:
| Cách tính | Công thức | Kết quả |
|---|---|---|
| Tuổi tròn | =DATEDIF(B4,DATE(2026,10,28),"Y") |
40 |
| Tuổi theo năm | =2026-YEAR(B4) |
41 |
Trong bảng thật, tuổi theo năm viết là =YEAR($H$1)-YEAR(B2). Trước khi lập danh sách, hãy đọc kỹ văn bản hướng dẫn của đơn vị xem yêu cầu "đủ tuổi" (tuổi tròn) hay "tuổi tính theo năm sinh", vì chênh nhau 1 tuổi có thể làm sai cả danh sách.
2. Kiểm tra đủ thâm niên và ngày đủ điều kiện
Giả sử quy định nội bộ của công ty là đủ 36 tháng thì được xét nâng bậc:
=IF(DATEDIF(C2,$H$1,"M")>=36,"Đủ","Chưa đủ")
Ngày bắt đầu đủ 36 tháng:
=EDATE(C2,36)
Định dạng ô kết quả là ngày (Home → Number Format → Short Date). Cách này cho bạn biết chính xác ngày nào cần đưa nhân viên vào danh sách xét, thay vì chờ đến cuối năm mới rà.
3. Thâm niên dạng số thập phân
Khi cần tính phụ cấp theo năm có lẻ (ví dụ 11,42 năm), dùng YEARFRAC:
=ROUND(YEARFRAC(C2,$H$1,1),2)
Đối số 1 là cách đếm theo số ngày thực tế. Kết quả chỉ để tham khảo theo tỷ lệ; nếu quy chế lương quy định cách làm tròn riêng, hãy làm theo quy chế. Liên kết với bảng lương xem tại cách tạo bảng lương cơ bản bằng Excel.
4. Còn bao nhiêu ngày đến sinh nhật
=EDATE(B2,12*(DATEDIF(B2,TODAY(),"Y")+1))-TODAY()
Công thức lấy ngày sinh cộng thêm (số tuổi tròn + 1) × 12 tháng để ra ngày sinh nhật kế tiếp, rồi trừ ngày hôm nay. Đúng vào ngày sinh nhật, công thức đếm sang sinh nhật năm sau. Rất tiện cho bảng chúc mừng sinh nhật nhân viên hoặc khách hàng.
Lỗi thường gặp
Lỗi #NUM!
Nguyên nhân: ngày bắt đầu lớn hơn ngày kết thúc, thường do nhập nhầm cột, gõ sai năm (2062 thay vì 2026) hoặc ô ngày chốt H1 đang để trống. Cách sửa: kiểm tra lại hai ô ngày và ô H1.
Dòng chưa nhập ngày lại ra thâm niên 126 năm
Nguyên nhân: ô trống được Excel coi là ngày 0 (đầu năm 1900). Cách sửa: bọc công thức để bỏ qua dòng trống: =IF(C2="","",DATEDIF(C2,$H$1,"Y")).
Lỗi #VALUE!
Nguyên nhân: ngày sinh là chữ chứ không phải ngày, hay gặp khi dán dữ liệu từ phần mềm khác hoặc máy đang dùng định dạng tháng/ngày (MM/DD) mà bạn gõ 15/03/1990. Kiểm tra bằng =ISNUMBER(B2): ra FALSE là ngày dạng chữ. Nếu chữ có dạng đủ dd/mm/yyyy (2 số ngày, 2 số tháng, 4 số năm), chuyển sang ngày thật bằng:
=DATE(RIGHT(B2,4),MID(B2,4,2),LEFT(B2,2))
Tuổi ra số rất lớn hoặc vô lý (ví dụ 121)
Nguyên nhân: cột chỉ có năm sinh (1985), Excel hiểu số 1985 là ngày thứ 1985 kể từ năm 1900. Cách sửa: không dùng DATEDIF, tính =YEAR($H$1)-B2.
Kết quả hiện dạng ngày 05/01/1900
Nguyên nhân: ô kết quả đang định dạng Date. Cách sửa: Home → Number Format → General.
Ngày bị đảo tháng (05/10 thành 10 tháng 5) Nguyên nhân: cài đặt vùng của Windows khác định dạng dữ liệu nguồn. Cách sửa và cách định dạng hiển thị ngày theo ý muốn xem trong bài hàm TEXT và định dạng ngày tháng tùy chỉnh.
Số ngày lẻ bị âm
Nguyên nhân: đang dùng đơn vị "MD". Cách sửa: thay bằng $H$1-EDATE(C2,DATEDIF(C2,$H$1,"M")) như Bước 3.
Bảng tóm tắt công thức
| Nhu cầu | Công thức |
|---|---|
| Tuổi tròn đến hôm nay | =DATEDIF(B2,TODAY(),"Y") |
| Tuổi tròn đến ngày chốt | =DATEDIF(B2,$H$1,"Y") |
| Tuổi theo năm | =YEAR($H$1)-YEAR(B2) |
| Chỉ có năm sinh | =YEAR($H$1)-B2 |
| Thâm niên x năm y tháng | =DATEDIF(C2,$H$1,"Y")&" năm "&DATEDIF(C2,$H$1,"YM")&" tháng" |
| Số ngày lẻ (thay "MD") | =$H$1-EDATE(C2,DATEDIF(C2,$H$1,"M")) |
| Tổng số tháng | =DATEDIF(C2,$H$1,"M") |
| Đủ 36 tháng chưa | =IF(DATEDIF(C2,$H$1,"M")>=36,"Đủ","Chưa đủ") |
| Ngày đủ 36 tháng | =EDATE(C2,36) |
| Thâm niên thập phân | =ROUND(YEARFRAC(C2,$H$1,1),2) |
| Số ngày đến sinh nhật | =EDATE(B2,12*(DATEDIF(B2,TODAY(),"Y")+1))-TODAY() |
Học Excel cho công việc nhân sự, kế toán
Tính tuổi, thâm niên, ngày đủ điều kiện nâng lương là phần việc lặp lại hằng tháng của bộ phận nhân sự. Khóa học Excel tại Điền Nguyễn AZ thực hành trên bảng nhân sự, bảng lương, chấm công giống công việc thật, học trực tiếp tại TP Vinh, Hưng Nguyên, Đô Lương hoặc online qua Zoom.
📞 Hotline / Zalo: 0362 465 361
👉 Xem chi tiết: Khóa học Excel
Tài liệu miễn phí
30 phím tắt Excel hay dùng nhất
Tổng hợp phím tắt giúp thao tác Excel nhanh hơn — điền thông tin để tải file PDF miễn phí về dùng ngay.
Bài viết liên quan

01/11/2026
Flash Fill trong Excel: tách họ tên, số điện thoại chỉ với Ctrl+E
Cách dùng Flash Fill (Ctrl+E) trong Excel để tách họ, tên đệm, tên và chuẩn hóa số điện thoại trong vài giây, kèm công thức dự phòng khi Flash Fill đoán sai.

26/10/2026
Hàm FILTER trong Excel: lọc dữ liệu tự động không cần AutoFilter
Hướng dẫn hàm FILTER trong Excel từ cơ bản đến nhiều điều kiện (AND, OR), kết hợp SORT, UNIQUE và cách xử lý lỗi #CALC!, #SPILL! — kèm ví dụ thực tế dễ làm theo.

23/10/2026
Lộ trình tự học Excel từ số 0 trong 30 ngày (có kế hoạch theo từng tuần)
Kế hoạch tự học Excel 30 ngày cho người mới hoàn toàn, chia theo 4 tuần từ các phép toán cơ bản đến hàm, xử lý dữ liệu và làm báo cáo bằng Pivot Table.