Tính Số Ngày, Tháng, Năm Giữa 2 Mốc Thời Gian Trong Google Sheets
Mục lục:
- 1. Hàm DATEDIF — công cụ chính xác nhất để tính khoảng cách ngày tháng năm
- 2. Tính tuổi chính xác — trường hợp dùng nhiều nhất của DATEDIF
- 3. YEARFRAC — khi cần số năm dạng thập phân
- 4. Tính khoảng cách theo tháng và tuần
- 5. Xử lý ngày âm và định dạng dữ liệu sai — nguyên nhân lỗi phổ biến nhất
- 6. Kết hợp DATEDIF với điều kiện để tự động phân loại
- 7. Tự động hóa với ARRAYFORMULA khi có hàng trăm dòng dữ liệu
- 8. Câu hỏi thường gặp
Bạn có ngày bắt đầu hợp đồng, ngày sinh nhân viên, ngày nhập kho — và cần biết chính xác đã bao nhiêu năm, bao nhiêu tháng, bao nhiêu ngày trôi qua. Dùng phép trừ đơn giản =B2-A2 chỉ ra số ngày, nhưng khi cần "2 năm 3 tháng 15 ngày" thì phải dùng đúng hàm. Bài này đi thẳng vào các công thức, lỗi thường gặp và cách áp dụng vào bảng tính thực tế.
Hàm DATEDIF — công cụ chính xác nhất để tính khoảng cách ngày tháng năm
DATEDIF là hàm ẩn (không hiện trong gợi ý autocomplete của Google Sheets) nhưng vẫn hoạt động đầy đủ. Cú pháp:
=DATEDIF(ngày_bắt_đầu, ngày_kết_thúc, "đơn_vị")
Tham số "đơn vị" quyết định kết quả trả về:
- "Y" — số năm tròn đã trôi qua
- "M" — số tháng tròn đã trôi qua
- "D" — tổng số ngày
- "YM" — số tháng dư sau khi trừ hết năm tròn (0-11)
- "MD" — số ngày dư sau khi trừ hết tháng tròn (0-30, hay lỗi nhất)
- "YD" — số ngày dư sau khi trừ hết năm tròn, bỏ qua tháng
Ví dụ: nhân viên vào làm ngày 15/03/2022, hôm nay là 17/08/2026. Muốn ra "4 năm 5 tháng 2 ngày", ghép 3 công thức lại:
=DATEDIF(A2,B2,"Y")&" năm "&DATEDIF(A2,B2,"YM")&" tháng "&DATEDIF(A2,B2,"MD")&" ngày"
Kết quả trả về đúng "4 năm 5 tháng 2 ngày" — đây là công thức dùng phổ biến nhất cho các bảng tính nhân sự, hợp đồng, bảo hành.
Lỗi thường gặp với đơn vị "MD"
Google Sheets tính "MD" bằng cách lùi ngày kết thúc về đúng ngày trong tháng trước đó, nên với các tháng có số ngày khác nhau (28, 29, 30, 31), kết quả đôi khi lệch 1-2 ngày so với cách đếm thủ công. Nếu bảng tính của bạn cần độ chính xác tuyệt đối theo lịch dương (ví dụ tính lãi phạt theo ngày), nên kiểm tra chéo bằng cách trừ trực tiếp ngày rồi convert, thay vì tin tuyệt đối vào "MD".
Tính tuổi chính xác — trường hợp dùng nhiều nhất của DATEDIF
Công thức tính tuổi tại thời điểm hiện tại:
=DATEDIF(A2,TODAY(),"Y")
Hàm TODAY() tự cập nhật theo ngày hệ thống, nên bảng tính luôn hiển thị tuổi đúng mà không cần sửa tay. Nếu cần tuổi tại một mốc cụ thể (ví dụ tuổi tại ngày ký hợp đồng), thay TODAY() bằng ô chứa ngày đó:
=DATEDIF(ngày_sinh, ngày_ký_hợp_đồng, "Y")
Với các bảng quản lý nhân sự hoặc CRM khách hàng cần theo dõi thông tin cá nhân kèm mốc thời gian như thế này, việc tổ chức dữ liệu ngay từ đầu quan trọng hơn công thức. Nếu bạn đang xây một hệ thống lớn hơn để quản lý toàn bộ vòng đời khách hàng — từ ngày tiếp cận, ngày chốt deal đến ngày chăm sóc lại — có thể tham khảo cách tổ chức trong bài Xây Dựng CRM Quản Lý Khách Hàng Với Google Sheets, trong đó các cột ngày tháng được thiết kế để liên kết trực tiếp với công thức nhắc việc.
YEARFRAC — khi cần số năm dạng thập phân
DATEDIF trả về số năm tròn, bỏ qua phần lẻ. Nếu cần độ chính xác dạng thập phân (ví dụ tính lãi suất theo năm, tính phụ cấp thâm niên theo tỷ lệ), dùng YEARFRAC:
=YEARFRAC(A2,B2)
Với 2 mốc cách nhau 2 năm 6 tháng, YEARFRAC trả về khoảng 2.5 thay vì 2. Hàm này có tham số thứ 3 để chọn cơ sở tính (basis):
| Basis | Cách tính | Ứng dụng phổ biến |
|---|---|---|
| 0 (mặc định) | 30/360 (mỗi tháng tính tròn 30 ngày) | Tính lãi trái phiếu, hợp đồng tài chính chuẩn Mỹ |
| 1 | Actual/actual (số ngày thực tế) | Tính chính xác theo lịch thực |
| 3 | Actual/365 | Tính lãi suất ngân hàng phổ biến ở VN |
Với các file tính lương, phụ cấp thâm niên theo % năm công tác, basis 1 hoặc 3 cho kết quả sát thực tế hơn basis mặc định.
Tính khoảng cách theo tháng và tuần
Ngoài năm, nhiều trường hợp cần đếm tháng hoặc tuần thay vì ngày lẻ tẻ.
Số tháng tròn giữa 2 mốc
=DATEDIF(A2,B2,"M")
Dùng khi tính số kỳ thanh toán trả góp, số chu kỳ hóa đơn, hoặc số tháng còn lại của gói dịch vụ.
Số tuần
Không có hàm dựng sẵn cho tuần, nhưng công thức đơn giản:
=INT((B2-A2)/7)
Hoặc nếu muốn làm tròn lên: =ROUNDUP((B2-A2)/7,0). Cách này hữu ích khi lập lịch chạy chiến dịch, tính số tuần còn lại đến deadline dự án — tương tự cách tính mốc thời gian trong mẫu lịch quản lý dự án trên Google Sheets, nơi số tuần còn lại thường được dùng để tô màu cảnh báo tiến độ trễ.
Xử lý ngày âm và định dạng dữ liệu sai — nguyên nhân lỗi phổ biến nhất
90% lỗi #VALUE! hoặc kết quả sai khi dùng DATEDIF không nằm ở công thức, mà ở định dạng dữ liệu đầu vào. Vài lỗi thường gặp:
- Ngày nhập dạng text: Nếu ô ngày bị căn trái (thay vì căn phải mặc định của số/ngày), Google Sheets đang hiểu đó là chuỗi text chứ không phải giá trị ngày thật. Dùng
=ISNUMBER(A2)để kiểm tra — trả về FALSE nghĩa là dữ liệu sai định dạng. - Ngày kết thúc nhỏ hơn ngày bắt đầu: DATEDIF trả về lỗi #NUM! nếu tham số thứ 2 nhỏ hơn tham số thứ 1. Luôn đảm bảo thứ tự đúng, hoặc bọc thêm
=IF(B2. - Định dạng khu vực (locale) lệch: File thiết lập theo định dạng Mỹ (MM/DD/YYYY) nhưng người dùng nhập theo kiểu Việt (DD/MM/YYYY) sẽ khiến ngày 13/05/2026 bị hiểu sai hoàn toàn hoặc báo lỗi với ngày như 25/03. Vào File → Settings → Locale, chọn "Vietnam" để đồng bộ.
Với các bảng tính có nhiều người nhập liệu (ví dụ theo dõi ngày nhập/xuất kho ở chuỗi cửa hàng), nên khóa định dạng cột ngày bằng Data Validation để tránh nhập nhầm dạng text — cách làm này áp dụng tốt trong các hệ thống quản lý bán lẻ nhiều chi nhánh như mô tả ở giải pháp Google Sheets cho ngành bán lẻ.
Kết hợp DATEDIF với điều kiện để tự động phân loại
Trong thực tế, bạn thường không chỉ muốn xem số ngày/tháng/năm, mà muốn bảng tự động gắn nhãn dựa trên khoảng cách đó. Vài công thức áp dụng thực tế:
Cảnh báo hợp đồng sắp hết hạn
=IF(DATEDIF(TODAY(),C2,"D")<=30,"Sắp hết hạn","Còn hiệu lực")
Công thức này so ngày hiện tại với ngày hết hạn hợp đồng (cột C), nếu còn dưới 30 ngày thì gắn nhãn cảnh báo — kết hợp thêm Conditional Formatting để tô màu đỏ dòng đó, giúp nhìn bảng tính là biết ngay việc cần xử lý gấp.
Phân loại nhóm thâm niên nhân viên
=IF(DATEDIF(A2,TODAY(),"Y")<1,"Dưới 1 năm",
IF(DATEDIF(A2,TODAY(),"Y")<3,"1-3 năm","Trên 3 năm"))
Áp dụng để tính phụ cấp thâm niên theo bậc, hoặc lọc nhanh nhóm nhân viên sắp đến mốc tăng lương.
Tự động hóa với ARRAYFORMULA khi có hàng trăm dòng dữ liệu
Nếu bảng tính có vài trăm dòng (danh sách khách hàng, danh sách hợp đồng), kéo công thức DATEDIF xuống từng dòng vừa chậm vừa dễ sót khi thêm dữ liệu mới. Dùng ARRAYFORMULA để áp dụng công thức cho toàn cột chỉ với 1 dòng công thức duy nhất ở hàng đầu:
=ARRAYFORMULA(IF(A2:A="","",DATEDIF(A2:A,TODAY(),"Y")))
Điều kiện IF(A2:A="","",...) đảm bảo các dòng trống không bị báo lỗi #NUM!. Cách này giúp bảng tính tự mở rộng khi có dòng mới thêm vào, không cần copy công thức thủ công — nguyên tắc tương tự khi tự động sinh dữ liệu hàng loạt như trong tạo mã QR code tự động bằng công thức, nơi một công thức duy nhất áp dụng cho cả cột thay vì lặp lại theo dòng.
Với các bảng có sẵn công cụ từ SheetStore, phần lớn công thức DATEDIF này đã được dựng sẵn trong các template quản lý nhân sự, hợp đồng và bảo hành, nên bạn chỉ cần nhập dữ liệu mà không phải tự viết lại từ đầu.
Câu hỏi thường gặp
Hàm nào tính chính xác số năm giữa hai ngày trong Google Sheets?
Dùng DATEDIF(ngày_bắt_đầu, ngày_kết_thúc, "Y") để lấy số năm tròn. Nếu cần cả năm-tháng-ngày, kết hợp thêm tham số "YM" và "MD" trong ba công thức riêng biệt để ghép thành chuỗi đầy đủ.
DATEDIF và YEARFRAC khác nhau thế nào?
DATEDIF trả về số nguyên (năm, tháng hoặc ngày tròn), phù hợp tính tuổi, thâm niên. YEARFRAC trả về số thập phân thể hiện tỷ lệ năm, hữu ích khi cần độ chính xác cao hơn như tính lãi suất hoặc khấu hao theo thời gian.
Tại sao công thức DATEDIF báo lỗi #NUM! hoặc #VALUE!?
Lỗi thường do ngày bắt đầu lớn hơn ngày kết thúc, hoặc một trong hai ô không phải định dạng ngày hợp lệ. Kiểm tra lại thứ tự tham số và dùng DATEVALUE để chuyển văn bản thành ngày trước khi tính.
Có thể tự động tính tuổi nhân viên cập nhật theo ngày hiện tại không?
Có, thay ngày kết thúc bằng hàm TODAY() trong công thức DATEDIF, ví dụ =DATEDIF(B2,TODAY(),"Y"). Kết quả sẽ tự cập nhật số năm mỗi khi mở lại file, phù hợp bảng theo dõi thâm niên hoặc hợp đồng.
Bài viết liên quan:
Bạn muốn áp dụng ngay mà không phải tự xây từ đầu?
Khám phá các mẫu Google Sheets và phần mềm quản lý dựng sẵn cho doanh nghiệp Việt tại SheetStore Marketplace.
📚 Bài Viết Liên Quan
- Template Google Sheets Quản Lý Khách Sạn và Nhà Nghỉ 2027: Đặt Phòng và Doanh Thu
- Mẫu Báo Cáo Quản Lý Kho Google Sheets 2027: Kiểm Soát Tồn Kho Chính Xác
- Google Sheets Nâng Cao Bài 4: Hàm QUERY - Lọc và Phân Tích Dữ Liệu Chuyên Nghiệp
- Giải Pháp Google Sheets Cho Ngành Bán Lẻ 2027: Từ Cửa Hàng Đơn Đến Chuỗi
Chia sẻ bài viết:
Tuân Hoang
Đội ngũ SheetStore
Google Workspace Certified, 5+ years experience
Bạn thấy bài viết hữu ích?
Đăng ký nhận thông báo khi có bài viết mới.


