AIDuLieu.comAI Dữ Liệu
Công thức Excel với trợ lý AI

Hàm ngày tháng trong Excel: tính hạn hợp đồng, thâm niên, ngày làm việc và giờ ca

Cách Excel lưu ngày giờ, các hàm EDATE, EOMONTH, DATEDIF, NETWORKDAYS.INTL dùng cho hạn hợp đồng, thâm niên, ngày công tuần sáu ngày và giờ ca qua nửa đêm.

HR assistant at a garment factory office in Khanh Hoa flipping through employee folders on a wooden desk, closed laptop and desk lamp, close-up on hands, warm tones

Excel lưu mỗi ngày là một con số đếm từ ngày 1/1/1900, còn giờ là phần thập phân của một ngày. Nhờ vậy, trừ hai ngày cho ra số ngày, cộng một số vào ngày cho ra ngày mới, và các hàm như EDATE, EOMONTH, DATEDIF, NETWORKDAYS.INTL tính được hạn hợp đồng, thâm niên, ngày làm việc. Mọi công thức ngày chỉ chạy đúng khi ô chứa ngày thật, không phải chữ trông giống ngày.

Bài viết giải thích cách Excel lưu ngày giờ, tóm tắt các hàm ngày dùng nhiều nhất ở văn phòng, đi qua ví dụ giả định quản lý hạn hợp đồng và thâm niên, cách tính ngày làm việc cho tuần làm sáu ngày, cách tính giờ ca qua nửa đêm, và những quy ước cần nói rõ khi nhờ AI viết công thức ngày tháng.

Excel lưu ngày và giờ như thế nào

Trên Excel cho Windows, ngày 1/1/1900 là số 1, mỗi ngày sau đó tăng thêm 1. Ngày 1/1/2026 vì thế là con số 46023. Thứ bạn nhìn thấy, như 01/01/2026 hay 1-Jan-26, chỉ là định dạng hiển thị đặt lên con số đó. Giờ là phần lẻ: 12 giờ trưa là 0,5 của một ngày, 6 giờ sáng là 0,25. Một ô ghi 01/01/2026 08:00 thực chất chứa 46023,333...

Hiểu điều này giải thích được nhiều hiện tượng tưởng lạ. Trừ ngày kết thúc cho ngày bắt đầu ra số ngày giữa hai mốc. Cộng 30 vào một ngày ra ngày sau đó 30 ngày. Một ô ngày bị đổi sang định dạng General bỗng hiện thành số năm chữ số. Và một ô trông giống ngày nhưng không đổi thành số khi chuyển định dạng chính là ngày dạng chữ, sẽ làm hỏng mọi phép tính dùng nó.

Với máy cài vùng Việt Nam, Excel hiểu chuỗi gõ vào theo thứ tự ngày, tháng, năm. Dữ liệu xuất từ phần mềm nước ngoài hay hệ thống cài vùng Mỹ lại theo thứ tự tháng, ngày, năm. Khi hai nguồn trộn vào nhau, ngày 05/03 có thể là mùng năm tháng ba ở dòng này và mùng ba tháng năm ở dòng khác. Cách chắc chắn nhất khi gõ công thức là dựng ngày bằng DATE(năm, tháng, ngày), không phụ thuộc vùng. Việc chuyển hàng loạt ngày dạng chữ về ngày thật thuộc khâu làm sạch dữ liệu, nên làm xong trước khi viết công thức.

Các hàm ngày tháng dùng nhiều nhất ở văn phòng

Bảng dưới gom những hàm bạn sẽ dùng thường xuyên. Tất cả đều có trong các phiên bản Excel phổ biến hiện nay, kể cả Excel 2010, nên dùng cho tệp chung khá yên tâm.

HàmLàm gìVí dụ dùng
TODAY()Ngày hôm nay, tự cập nhật mỗi lần tính lạiSố ngày còn lại đến hạn: =C2-TODAY()
DATE(năm, tháng, ngày)Dựng một ngày từ ba con sốNgày đầu quý: =DATE(2026,4,1)
YEAR, MONTH, DAYTách năm, tháng, ngày từ một ngàyCột phụ tháng để tổng hợp: =MONTH(A2)
EDATE(ngày, số tháng)Cộng hoặc trừ số tháng trònHạn hợp đồng 12 tháng: =EDATE(B2,12)-1
EOMONTH(ngày, số tháng)Ngày cuối tháng, tính lùi hoặc tiếnCuối tháng hiện tại: =EOMONTH(A2,0)
DATEDIF(bắt đầu, kết thúc, đơn vị)Khoảng cách theo năm, tháng hoặc ngày trònSố năm thâm niên: =DATEDIF(C2,TODAY(),"Y")
NETWORKDAYS.INTLĐếm ngày làm việc, chọn được ngày nghỉ trong tuầnNgày công tuần sáu ngày, nghỉ Chủ nhật
WORKDAY.INTLTìm ngày sau một số ngày làm việcHạn xử lý hồ sơ 10 ngày làm việc
WEEKDAY(ngày, kiểu)Thứ trong tuần dưới dạng sốĐánh dấu đơn đặt vào Chủ nhật

Các ví dụ viết theo dấu phẩy; máy dùng dấu chấm phẩy thì thay tương ứng. Mã đơn vị của DATEDIF như "Y", "M", "D" đặt trong ngoặc kép và không phụ thuộc ngôn ngữ cài đặt.

Ví dụ giả định: theo dõi hạn hợp đồng và thâm niên nhân viên

Phòng nhân sự một xưởng may ở Khánh Hòa có bảng: cột B là ngày bắt đầu hợp đồng, cột C là thời hạn tính bằng tháng (12, 24, 36), cột D là ngày vào làm lần đầu. Cần tính ngày hết hạn, số ngày còn lại, cảnh báo và thâm niên.

  1. Ngày hết hạn ở cột E: =EDATE(B2,C2)-1. Hợp đồng 12 tháng bắt đầu 15/3/2026 sẽ hết hạn 14/3/2027. Trừ 1 là quy ước tính cả ngày đầu; nếu công ty bạn tính khác, đổi công thức theo quy ước đó.
  2. Số ngày còn lại ở cột F: =E2-TODAY(). Số âm nghĩa là đã quá hạn.
  3. Cảnh báo ở cột G: =IF(F2<0,"Đã hết hạn",IF(F2<=30,"Sắp hết hạn","")). Kết hợp định dạng có điều kiện tô vàng các dòng "Sắp hết hạn" để nhìn nhanh.
  4. Thâm niên theo năm tròn ở cột H: =DATEDIF(D2,TODAY(),"Y"). Muốn hiện dạng "3 năm 5 tháng", ghép thêm =DATEDIF(D2,TODAY(),"YM") cho phần tháng lẻ.
  5. Kiểm các trường hợp biên: hợp đồng bắt đầu ngày 31/1 thời hạn 1 tháng (EDATE trả về ngày cuối tháng 2), nhân viên vào làm đúng ngày hôm nay, và dòng thiếu ngày vào làm.

Trường hợp ngày 31 là chỗ đáng chú ý. EDATE cộng tháng theo lịch và tự lùi về ngày cuối cùng của tháng đích nếu tháng đó không có ngày 31. Phép cộng 30 ngày thay cho một tháng thì cho kết quả trôi dần, sau một năm lệch vài ngày. Khi AI đề xuất cộng 30 hay 365, hãy hỏi lại vì sao không dùng EDATE.

Quy ước tính hạn hợp đồng, ngày kết thúc thử việc hay ngày nghỉ phép năm có thể do quy định nội bộ và pháp luật lao động chi phối. Công thức chỉ tính đúng theo quy ước bạn đưa vào; hãy đối chiếu quy định hiện hành với bộ phận pháp chế hoặc nhân sự.

Tính ngày làm việc cho tuần làm sáu ngày

NETWORKDAYS cũ mặc định nghỉ thứ Bảy và Chủ nhật, không hợp với nhiều xưởng, cửa hàng ở Việt Nam làm cả thứ Bảy. Hàm NETWORKDAYS.INTL cho chọn ngày nghỉ trong tuần qua đối số thứ ba. Mã số 11 nghĩa là chỉ nghỉ Chủ nhật, mã 1 là nghỉ thứ Bảy và Chủ nhật. Ngoài mã số, bạn có thể dùng chuỗi bảy ký tự 0 và 1 bắt đầu từ thứ Hai, trong đó 1 là ngày nghỉ: "0000001" là nghỉ Chủ nhật, "0000011" là nghỉ thứ Bảy và Chủ nhật.

Đối số cuối là danh sách ngày lễ. Hãy dựng một trang tính NgayNghi chứa các ngày nghỉ lễ của năm, đặt tên vùng NgayLe, rồi công thức trở thành =NETWORKDAYS.INTL(B2,C2,11,NgayLe). Lịch nghỉ Tết âm lịch, nghỉ bù và hoán đổi ngày làm việc thay đổi theo từng năm, nên danh sách này phải cập nhật theo thông báo chính thức mỗi năm, không nên nhờ AI tự điền vì nó có thể nhớ sai hoặc không biết thông báo mới.

Hàm này đếm cả ngày đầu và ngày cuối. Nếu bạn muốn số ngày làm việc từ hôm nay đến hạn mà không tính hôm nay, cần trừ đi một khi hôm nay là ngày làm việc. Trường hợp làm nửa ngày thứ Bảy thì NETWORKDAYS.INTL không xử lý được phần nửa ngày; cách thực tế là đếm riêng số thứ Bảy trong khoảng bằng một NETWORKDAYS.INTL khác với chuỗi chỉ thứ Bảy là ngày làm, rồi nhân với 0,5 và cộng vào. Đây là loại công thức nên nhờ AI viết và kiểm trên một tháng bạn đếm được bằng tay.

Chiều ngược lại cũng hay cần: biết ngày nhận hồ sơ, tính ngày hẹn trả sau mười ngày làm việc. WORKDAY.INTL(ngày bắt đầu, số ngày làm việc, mã ngày nghỉ, danh sách ngày lễ) trả về đúng ngày đó, bỏ qua Chủ nhật và ngày lễ trong danh sách. Hàm không tính ngày bắt đầu, nên nhận hồ sơ thứ Hai và hẹn một ngày làm việc thì kết quả là thứ Ba. Nếu quy ước của đơn vị bạn tính cả ngày nhận, trừ đi một trong số ngày.

DATEDIF và những điều nên biết trước khi dùng

Không hiện trong danh sách gợi ý. DATEDIF là hàm giữ lại để tương thích với phần mềm bảng tính cũ, nên Excel không gợi ý khi bạn gõ và không hiện hướng dẫn đối số. Nó vẫn chạy bình thường. Nhiều người tưởng hàm không tồn tại vì không thấy trong danh sách.

Ngày bắt đầu phải nhỏ hơn ngày kết thúc. Đảo ngược thứ tự, DATEDIF trả lỗi #NUM!. Trong bảng có dòng thiếu dữ liệu hay nhập nhầm, nên bọc kiểm tra điều kiện trước.

Tránh đơn vị "MD". Đơn vị "MD" tính số ngày lẻ sau khi bỏ tháng và năm, nhưng Microsoft ghi nhận có hạn chế và có thể cho kết quả sai trong một số trường hợp. Nếu cần số ngày lẻ, hãy tính bằng cách trừ ngày kết thúc cho EDATE của ngày bắt đầu cộng số tháng tròn.

Năm tròn khác năm thập phân. DATEDIF với "Y" chỉ đếm năm tròn: người vào làm 2 năm 11 tháng vẫn là 2. Nếu quy chế tính thâm niên theo năm có phần lẻ, YEARFRAC cho kết quả dạng thập phân, và cách làm tròn phải theo đúng quy chế.

Tính tuổi. Tuổi tròn theo ngày sinh là =DATEDIF(ngày sinh,TODAY(),"Y"). Bảng có ngày sinh là dữ liệu cá nhân: khi nhờ AI viết công thức, chỉ đưa tên cột và một ngày sinh giả định.

Tính giờ làm và giờ ca qua nửa đêm

Giờ trong Excel là phần thập phân của ngày, nên giờ ra trừ giờ vào cho ra thời lượng tính bằng ngày. Nhân với 24 để đổi ra số giờ: ca từ 7:30 đến 17:00 cho =(C2-B2)*24 bằng 9,5 giờ. Nếu muốn hiển thị dạng giờ phút thay vì số thập phân, giữ nguyên phép trừ và định dạng ô bằng mã [h]:mm. Dấu ngoặc vuông giúp tổng giờ của cả tháng vượt 24 vẫn hiện đúng, thay vì quay về 0 sau mỗi 24 giờ.

Ca đêm là chỗ công thức đơn giản hỏng: vào 22:00, ra 6:00 sáng hôm sau, phép trừ cho số âm và ô hiện chuỗi dấu thăng. Cách xử lý gọn là =MOD(C2-B2,1)*24. Hàm MOD đưa kết quả âm về phần dư dương trong một ngày, nên 6:00 trừ 22:00 thành 8 giờ. Cách này đúng với ca dưới 24 giờ. Nếu bảng chấm công ghi cả ngày lẫn giờ trong một ô, phép trừ thông thường đã đúng mà không cần MOD.

Khi nhờ AI dựng bảng giờ công, hãy mô tả rõ: giờ vào ra lưu là giờ thật hay chữ, có nghỉ trưa trừ cố định không, làm tròn theo khối 15 phút hay theo phút, giờ tăng ca bắt đầu tính từ mốc nào. Các quy định về giờ tăng ca và cách trả lương là chuyện của chính sách công ty và pháp luật lao động; công thức chỉ phản ánh đúng những gì bạn mô tả.

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

Vì sao trừ hai ngày mà Excel hiện ra một ngày tháng thay vì số ngày?

Excel tự gán định dạng ngày cho ô kết quả vì nó thấy công thức dùng ô ngày. Kết quả bên trong vẫn là số ngày đúng. Chọn ô đó, đổi định dạng sang Number hoặc General là thấy con số. Đây không phải lỗi công thức.

Làm sao biết một cột ngày là ngày thật hay chữ?

Chọn vài ô và đổi định dạng sang General. Ngày thật biến thành số khoảng bốn mươi sáu nghìn với ngày trong năm 2026, còn chữ giữ nguyên hình dạng. Bạn cũng có thể dùng ISNUMBER, kết quả TRUE là ngày thật. Ngày dạng chữ thường căn trái khi ô chưa có định dạng căn lề riêng.

TODAY() có làm thay đổi báo cáo cũ không?

Có. TODAY() tính lại mỗi khi tệp mở hoặc tính toán lại, nên báo cáo dùng nó hôm nay và tuần sau sẽ cho số khác. Với báo cáo cần chốt tại một ngày, hãy dùng một ô nhập ngày chốt sổ thay cho TODAY(), hoặc dán giá trị khi đã chốt.

Có hàm nào đổi ngày dương lịch sang âm lịch không?

Excel không có hàm sẵn để đổi sang âm lịch Việt Nam. Cách thực tế là dùng một bảng tra ngày dương sang ngày âm cho khoảng năm cần dùng, lấy từ nguồn đáng tin cậy và kiểm vài ngày mốc, rồi dò tìm bằng XLOOKUP hay INDEX MATCH. Không nên để AI tự sinh bảng này.

Tính số tháng giữa hai ngày dùng hàm nào?

DATEDIF với đơn vị "M" cho số tháng tròn giữa hai ngày. Nếu chỉ cần chênh lệch theo tháng lịch, không quan tâm ngày trong tháng, có thể dùng phép tính trên YEAR và MONTH. Hai cách cho kết quả khác nhau khi ngày cuối chưa tới ngày tương ứng của tháng, nên chọn theo quy ước của bạn.

Ngày trong Excel trên Mac có khác Windows không?

Các bản Excel trên Mac hiện nay mặc định dùng cùng hệ ngày bắt đầu năm 1900 như Windows. Một số tệp rất cũ tạo trên Mac dùng hệ ngày 1904, khi chép ngày sang tệp khác sẽ lệch khoảng bốn năm. Nếu gặp lệch như vậy, kiểm tuỳ chọn hệ ngày 1904 trong phần cài đặt tính toán của tệp.

Cần tư vấn cụ thể cho trường hợp của bạn?

Chúng tôi sẽ liên hệ trong vòng 24 giờ.

Đăng ký tư vấn ngay

Bài viết liên quan

Bạn cần hỗ trợ thêm?

Để lại thông tin, chúng tôi sẽ liên hệ trong 24 giờ.

hoặc
Gọi ngay 0926 138 138