Hạn thanh toán của hóa đơn này là ngày nào? Khách này đã nợ bao nhiêu ngày? Còn mấy ngày làm việc nữa thì phải gọi nhắc nợ? Toàn là câu hỏi về ngày tháng, và cũng là chỗ người dùng Excel hay tính sai nhất. Bài viết này gom lại 12 hàm ngày tháng trong Excel mà mình thấy dùng nhiều nhất khi làm sổ sách, chia thành 5 nhóm dễ nhớ. Mỗi hàm đều có cú pháp, ví dụ thật và lỗi hay gặp. Cuối bài, mình ghép cả 12 hàm lại thành một bảng theo dõi công nợ 18 hóa đơn: chỉ cần đổi ngày chốt sổ là cả bảng tự tính lại.

1. Video hướng dẫn 12 hàm ngày tháng trong Excel
Nếu bạn thích xem hơn đọc, video dưới đây làm lần lượt từng hàm trên đúng file thực hành của bài, sau đó dựng bảng công nợ từ đầu đến cuối (dài khoảng 32 phút, có mục lục để nhảy tới từng hàm).
2. Hiểu đúng cách Excel lưu ngày tháng trước khi dùng hàm
Với Excel, mỗi ngày thực chất là một con số: ngày 01/01/1900 là số 1, ngày 12/03/2026 là số 46093. Nhờ vậy bạn mới cộng trừ được ngày: lấy ngày hóa đơn cộng 45 là ra ngày đến hạn, lấy ngày chốt sổ trừ ngày hóa đơn là ra số ngày nợ. Ba điều cần kiểm tra trước khi làm:
- Ngày phải là ngày thật, không phải chữ. Ô ngày thật mặc định căn phải. Nếu ô căn trái và hàm báo
#VALUE!, đó là ngày dạng chữ. - Định dạng ngày của Windows. Nếu gõ 12/03/2026 mà Excel hiểu thành 3 tháng 12, vào Control Panel → Region, đổi Short date thành dd/MM/yyyy.
- Dấu ngăn tham số. Bài viết dùng dấu phẩy
,. Máy bạn báo lỗi công thức thì đổi sang dấu chấm phẩy;.
3. Bảng tóm tắt 12 hàm ngày tháng trong Excel
Bảng này là bản rút gọn của sheet TRACUUHAM trong file thực hành. Bạn nên mở song song khi làm bài tập.
| Nhóm | Hàm | Dùng để làm gì |
|---|---|---|
| Ngày hiện tại & tạo ngày | TODAY | Lấy ngày hôm nay, tự cập nhật mỗi lần mở file |
| DATE | Ghép năm, tháng, ngày rời rạc thành một ngày thật | |
| Tách thành phần | DAY | Lấy số ngày trong tháng (1–31) |
| MONTH | Lấy số tháng (1–12), dùng gom nhóm theo tháng, quý | |
| YEAR | Lấy số năm 4 chữ số | |
| WEEKDAY | Cho biết ngày đó là thứ mấy (dạng số) | |
| Cộng trừ theo tháng | EDATE | Cộng/trừ số tháng, giữ nguyên ngày trong tháng |
| EOMONTH | Lấy ngày cuối tháng, hàm chốt sổ | |
| Khoảng cách | DATEDIF | Đếm số ngày, tháng, năm giữa hai mốc |
| Ngày làm việc | NETWORKDAYS | Đếm ngày làm việc, bỏ Thứ Bảy, Chủ Nhật và ngày lễ |
| WORKDAY | Tiến hoặc lùi N ngày làm việc để ra ngày đích | |
| NETWORKDAYS.INTL | Như NETWORKDAYS nhưng tự chọn ngày nghỉ trong tuần |

Sheet TRACUUHAM trong file thực hành: công dụng, cú pháp, ví dụ và lỗi hay gặp của từng hàm.
Tất cả ví dụ bên dưới dùng chung bảng dữ liệu ở sheet BAITAP_COBAN: ngày lập hóa đơn ở ô C5 là 12/03/2026, ngày chốt sổ C6 là 30/09/2026, số ngày nợ cho phép C7 là 45, ngày sinh khách hàng C8, ngày bắt đầu dự án C9 là 01/06/2026, ngày giao hàng C10 là 18/08/2026. Danh sách ngày lễ nằm ở vùng E5:E10.
4. Nhóm 1: Lấy ngày hiện tại và tạo ngày (TODAY, DATE)
4.1. Hàm TODAY: ngày hôm nay
Hàm không có tham số, trả về ngày hiện tại của máy tính. Muốn biết hóa đơn xuất hôm nay với hạn nợ 45 ngày thì đến hạn ngày nào, bạn chỉ cần =TODAY()+$C$7.
4.2. Hàm DATE: ghép năm, tháng, ngày thành một ngày
=DATE(2026,9,6) cho ra 06/09/2026. Hàm này rất cần khi dữ liệu năm, tháng, ngày nằm ở ba cột riêng, hoặc khi bạn muốn viết một ngày cố định trong công thức mà không phụ thuộc định dạng ngày của máy.
Điểm hay: tháng hoặc ngày vượt giới hạn sẽ tự nhảy. =DATE(2026,13,1) cho ra 01/01/2027 chứ không báo lỗi. Nhờ vậy DATE cộng dồn tháng rất an toàn.
5. Nhóm 2: Tách ngày, tháng, năm, thứ (DAY, MONTH, YEAR, WEEKDAY)
5.1. Hàm DAY: lấy số ngày
=DAY($C$5) cho ra 12. Mẹo đáng nhớ: =DAY(EOMONTH($C$5,0)) cho ra 31, tức tháng 3 có 31 ngày. Bạn đếm được số ngày của bất kỳ tháng nào mà không cần nhớ tháng nào 30 hay 31 ngày, kể cả tháng 2 năm nhuận.
5.2. Hàm MONTH: lấy số tháng, tính luôn quý
=MONTH($C$5) cho ra 3. Muốn biết hóa đơn thuộc quý mấy, chia số tháng cho 3 rồi làm tròn lên:
MONTH chỉ trả về số, không trả về tên tháng. Muốn ra chữ thì dùng thêm hàm TEXT hoặc nối chuỗi như trên.
5.3. Hàm YEAR: lấy số năm, tạo mã kỳ báo cáo
=YEAR($C$5) cho ra 2026. Kết hợp với MONTH và TEXT để tạo mã kỳ dạng 2026-03, rất gọn khi gom nhóm và sắp xếp báo cáo theo tháng:
Kết quả là chuỗi chữ nên không cộng trừ được, chỉ dùng để gom nhóm và sắp xếp.
5.4. Hàm WEEKDAY: ngày đó là thứ mấy
Ở Việt Nam nên luôn dùng kiểu 2: Thứ Hai = 1, …, Chủ Nhật = 7. =WEEKDAY($C$5,2) cho ra 4, tức ngày 12/03/2026 là Thứ Năm. Muốn hiện thẳng tên thứ tiếng Việt, bọc thêm hàm CHOOSE:

WEEKDAY trả về số, CHOOSE đổi số đó thành tên thứ tiếng Việt.
6. Nhóm 3: Cộng trừ theo tháng (EDATE, EOMONTH)
6.1. Hàm EDATE: cộng trừ số tháng
Hạn thanh toán 3 tháng sau ngày hóa đơn: =EDATE($C$5,3) cho ra 12/06/2026. Cùng ngày này tháng trước: =EDATE($C$5,-1) cho ra 12/02/2026.
Vì sao không cộng 90 ngày cho nhanh? Vì các tháng dài ngắn khác nhau. EDATE luôn giữ đúng ngày trong tháng, và ngày 31/01 cộng 1 tháng sẽ tự lùi về 28/02 (hoặc 29/02 năm nhuận), không bao giờ sinh ra ngày không tồn tại.
6.2. Hàm EOMONTH: ngày cuối tháng, hàm chốt sổ
- Ngày chốt công nợ cuối tháng của hóa đơn:
=EOMONTH($C$5,0)→ 31/03/2026. - Ngày đầu tiên của tháng kế tiếp:
=EOMONTH($C$5,0)+1→ 01/04/2026. - Ngày đầu tiên của chính tháng đó:
=EOMONTH($C$5,-1)+1→ 01/03/2026.

EDATE tính hạn thanh toán, EOMONTH lấy ngày chốt sổ cuối tháng.
7. Nhóm 4: Đếm khoảng cách giữa hai ngày (DATEDIF)
Đơn vị hay dùng: “d” là số ngày, “m” là số tháng tròn, “y” là số năm tròn. Ví dụ trong file:
- Tuổi nợ từ ngày hóa đơn đến ngày chốt sổ:
=DATEDIF($C$5,$C$6,"d")→ 202 ngày. - Tuổi khách hàng tính đến ngày chốt sổ:
=DATEDIF($C$8,$C$6,"y")→ 36 tuổi.
Ngoài ra còn hai đơn vị “ym” (số tháng lẻ sau khi bỏ năm) và “md” (số ngày lẻ sau khi bỏ tháng), dùng khi cần ghi kiểu “3 năm 5 tháng 12 ngày”. Microsoft có cảnh báo “md” đôi khi cho kết quả sai, nên hãy kiểm tra lại nếu dùng cho việc quan trọng.
#NUM!. Trong bảng công nợ, mình bọc thêm IFERROR để tránh lỗi này.8. Nhóm 5: Ngày làm việc (NETWORKDAYS, WORKDAY, NETWORKDAYS.INTL)
8.1. Hàm NETWORKDAYS: đếm ngày làm việc
Hàm tự bỏ Thứ Bảy, Chủ Nhật và đếm cả ngày đầu lẫn ngày cuối. Từ ngày bắt đầu dự án 01/06/2026 đến ngày chốt sổ 30/09/2026:
=NETWORKDAYS($C$9,$C$6)→ 88 ngày làm việc.- Trừ thêm ngày lễ:
=NETWORKDAYS($C$9,$C$6,$E$5:$E$10)→ 87 (bớt ngày Quốc khánh 02/09).
8.2. Hàm WORKDAY: tiến hoặc lùi N ngày làm việc
Giao hàng ngày 18/08/2026, sau 12 ngày làm việc là ngày nào? =WORKDAY($C$10,12) cho ra 03/09/2026. Khi trừ thêm ngày lễ: =WORKDAY($C$10,12,$E$5:$E$10) cho ra 04/09/2026, vì 02/09 là ngày nghỉ.
Nhập số âm để lùi về trước. Đây chính là cách tính “ngày gọi nhắc nợ trước hạn 3 ngày làm việc” ở phần công nợ bên dưới.
8.3. Hàm NETWORKDAYS.INTL: tự chọn ngày nghỉ trong tuần
Cửa hàng vật liệu, tạp hóa ở Việt Nam thường bán cả Thứ Bảy và chỉ nghỉ Chủ Nhật. Dùng NETWORKDAYS thường sẽ đếm thiếu công. Với kiểu nghỉ 11 (chỉ nghỉ Chủ Nhật):
=NETWORKDAYS.INTL($C$9,$C$6,11)→ 105 ngày (so với 88 của NETWORKDAYS).- Trừ thêm ngày lễ:
=NETWORKDAYS.INTL($C$9,$C$6,11,$E$5:$E$10)→ 104 ngày.
| Mã kiểu nghỉ | Ý nghĩa |
|---|---|
| 1 | Nghỉ Thứ Bảy và Chủ Nhật (mặc định, giống NETWORKDAYS) |
| 2 | Nghỉ Chủ Nhật và Thứ Hai |
| 11 | Chỉ nghỉ Chủ Nhật, hợp với cửa hàng bán lẻ |
| 12 | Chỉ nghỉ Thứ Hai |
| 17 | Chỉ nghỉ Thứ Bảy |
| “0000011” | Tự đặt bằng chuỗi 7 ký tự từ Thứ Hai đến Chủ Nhật, số 1 là ngày nghỉ |

Gõ NETWORKDAYS.INTL, Excel hiện sẵn danh sách mã kiểu nghỉ để chọn.
Lưu ý: NETWORKDAYS.INTL cần Excel 2010 trở lên. Nếu còn dùng Excel 2007, hãy thay bằng NETWORKDAYS. Hàm anh em WORKDAY.INTL cũng có cùng tham số kiểu nghỉ, dùng khi cần tiến lùi ngày làm việc theo lịch nghỉ riêng.
9. Áp dụng: dựng bảng theo dõi công nợ bằng 12 hàm ngày tháng
Phần hay nhất là ghép các hàm lại. Sheet BAITAP_CONGNO có 18 hóa đơn lấy từ sổ công nợ gốc (sheet DULIEU). Bạn chỉ điền các cột nền vàng. Ngày chốt sổ nằm ở ô C2, danh sách ngày lễ ở DULIEU!$K$5:$K$10. Công thức cho dòng đầu tiên (dòng 6), sau đó kéo xuống hết bảng:
| Cột | Công thức | Ý nghĩa |
|---|---|---|
| G. Còn nợ | =E6-F6 | Giá trị hóa đơn trừ đã thanh toán |
| I. Ngày đến hạn | =C6+H6 | Ngày hóa đơn cộng số ngày được nợ |
| J. Thứ của ngày đến hạn | =CHOOSE(WEEKDAY(I6,2),”Thứ Hai”,…,”Chủ Nhật”) | Biết hạn rơi vào thứ mấy |
| K. Ngày thu thực tế | =IF(WEEKDAY(I6,2)>5,WORKDAY(I6,1,DULIEU!$K$5:$K$10),I6) | Hạn rơi vào Thứ Bảy, Chủ Nhật thì dời sang ngày làm việc kế tiếp |
| L. Tuổi nợ (ngày) | =IFERROR(DATEDIF(C6,$C$2,”d”),0) | Số ngày từ lúc xuất hóa đơn đến ngày chốt sổ |
| M. Quá hạn (ngày) | =MAX(0,$C$2-I6) | Chưa đến hạn thì bằng 0, không ra số âm |
| N. Nhóm tuổi nợ | =IF(G6=0,”Đã tất toán”,IF(M6=0,”Trong hạn”,IF(M6<=30,”Quá hạn 1-30 ngày”,…))) | Phân loại để ưu tiên thu tiền |
| O. Ngày nhắc nợ | =WORKDAY(I6,-3,DULIEU!$K$5:$K$10) | Gọi khách trước hạn 3 ngày làm việc |
| P. Ngày làm việc còn lại | =NETWORKDAYS.INTL($C$2,I6,11,DULIEU!$K$5:$K$10) | Số âm nghĩa là đã quá hạn thu tiền |
Lấy hóa đơn đầu tiên HD26-001 làm ví dụ: xuất ngày 12/03/2026, được nợ 45 ngày nên đến hạn 26/04/2026. Ngày đó rơi vào Chủ Nhật nên ngày thu thực tế dời sang Thứ Hai 27/04/2026. Đến ngày chốt sổ 30/09/2026, hóa đơn đã 202 ngày tuổi, quá hạn 157 ngày, thuộc nhóm “Quá hạn trên 90 ngày”. Lẽ ra phải gọi nhắc từ ngày 22/04/2026.

Bảng công nợ hoàn chỉnh. Đổi ngày chốt sổ ở ô C2 là toàn bộ bảng tự tính lại.
Bảng tổng hợp nhanh
Bên dưới bảng chi tiết là khối tổng hợp, dùng SUM, COUNTIF, COUNTIFS, SUMIFS trên các cột vừa tính. Với ngày chốt sổ 30/09/2026, kết quả như sau:
| Chỉ tiêu | Công thức | Kết quả |
|---|---|---|
| Tổng giá trị hóa đơn | =SUM(E6:E23) | 2.562.700.000 |
| Tổng còn nợ | =SUM(G6:G23) | 1.654.800.000 |
| Số hóa đơn đã quá hạn | =COUNTIFS(M6:M23,”>0″,G6:G23,”>0″) | 11 |
| Tổng tiền đang quá hạn | =SUMIFS(G6:G23,M6:M23,”>0″,G6:G23,”>0″) | 1.161.300.000 |
| Sẽ đến hạn trong 7 ngày làm việc tới | =COUNTIFS(P6:P23,”>=0″,P6:P23,”<=7″,G6:G23,”>0″) | 2 |
Nếu bạn muốn quản lý công nợ theo từng khách (nhiều lần mua, nhiều lần trả), xem thêm bài Quản lý công nợ bằng Excel: 4 bước từ A-Z. Bài đó dùng SUMIFS và INDEX/MATCH để tổng hợp theo khách, kết hợp rất tốt với bảng tuổi nợ ở đây.
10. 6 lỗi thường gặp với hàm ngày tháng trong Excel
Dữ liệu copy từ phần mềm khác hay web thường là chữ. Kiểm tra bằng cách xem ô căn trái hay căn phải, hoặc dùng
=ISNUMBER(A2).Máy đang để định dạng tháng/ngày/năm kiểu Mỹ. Đổi Short date thành dd/MM/yyyy trong Control Panel → Region.
EDATE, EOMONTH, WORKDAY trả về số ngày dạng số. Chỉ cần định dạng ô thành Date.
Mặc định Chủ Nhật = 1, nên mọi điều kiện cuối tuần đều lệch. Luôn ghi rõ kiểu 2.
Ngày đầu đang lớn hơn ngày cuối, thường gặp khi lùi ngày chốt sổ về trước ngày hóa đơn. Đổi lại thứ tự hoặc bọc IFERROR.
Quên dấu $ khi tham chiếu vùng ngày lễ trong NETWORKDAYS, WORKDAY. Kéo công thức xuống vài dòng là vùng trượt khỏi danh sách.
11. Khi Excel bắt đầu đuối
12 hàm trên đủ để bạn tự dựng bảng theo dõi công nợ cho vài chục khách hàng. Nhưng khi số hóa đơn lên tới vài nghìn, khi một khách trả làm nhiều lần, khi cần đối trừ công nợ theo từng hóa đơn và in giấy báo nợ, thì công thức bắt đầu nặng và dễ sai.
TPSoft là phần mềm quản lý bán hàng kết hợp quản lý kho và công nợ viết trên nền Excel VBA, hoạt động Offline, phù hợp nhiều ngành: tạp hóa, vật liệu xây dựng, điện nước, nhôm kính, tôn sắt thép,… Cài đặt 1 lần sử dụng vĩnh viễn. Vì chạy trên Excel nên ai đã quen bảng tính như bài này sẽ làm quen rất nhanh. Xem thêm bảng giá hoặc video hướng dẫn sử dụng.
12. Tải file thực hành 12 hàm ngày tháng
⬇ Tải file thực hành miễn phí (.xlsx)
13. Câu hỏi thường gặp
📺 Học Excel và quản lý bán hàng cùng Tin học Đông Phương
Theo dõi kênh YouTube Tin học Đông Phương để xem thêm các bài Excel, VBA thực tế. Cần quản lý bán hàng – kho – công nợ trọn gói? Dùng thử phần mềm TPSoft, cài 1 lần dùng vĩnh viễn, hoặc nhắn Zalo 0906 864 860 để được tư vấn.
Trao giá trị, nhận niềm tin.

