12 hàm ngày tháng trong Excel: cú pháp, ví dụ và áp dụng vào sổ công nợ (kèm file thực hành)

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.

✅ Có sẵn file thực hành: 7 sheet gồm từ điển tra cứu 12 hàm, 24 câu bài tập cơ bản, sổ công nợ 18 hóa đơn và đầy đủ đáp án. Tải file thực hành ↓

12 hàm ngày tháng trong Excel: TODAY, DATE, EDATE, EOMONTH, DATEDIF, WEEKDAY, NETWORKDAYS, WORKDAY

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 từ điển tra cứu 12 hàm ngày tháng trong Excel: công dụng, cú pháp, ví dụ và lỗi thường gặp

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

=TODAY()

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.

💡 Lưu ý: TODAY tự đổi mỗi ngày mở file. Khi cần một ngày đứng yên (ngày lập phiếu, ngày ký), bấm Ctrl + ; để chèn ngày tĩnh thay vì dùng TODAY.

4.2. Hàm DATE: ghép năm, tháng, ngày thành một ngày

=DATE(năm, tháng, 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(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(ngày)

=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:

=”Quý “&ROUNDUP(MONTH($C$5)/3,0) → Quý 1

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(ngày)

=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:

=YEAR($C$5)&”-“&TEXT(MONTH($C$5),”00”)

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

=WEEKDAY(ngày, kiểu)

Ở 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:

=CHOOSE(WEEKDAY($C$5,2),”Thứ Hai”,”Thứ Ba”,”Thứ Tư”,”Thứ Năm”,”Thứ Sáu”,”Thứ Bảy”,”Chủ Nhật”)

Hàm WEEKDAY kết hợp CHOOSE để đổi số thứ thành tên thứ tiếng Việt trong Excel

WEEKDAY trả về số, CHOOSE đổi số đó thành tên thứ tiếng Việt.

⚠ Bẫy hay gặp: bỏ trống tham số kiểu thì Excel dùng kiểu 1 (kiểu Mỹ, Chủ Nhật = 1). Khi đó điều kiện “thứ lớn hơn 5 là cuối tuần” sẽ sai hết.

6. Nhóm 3: Cộng trừ theo tháng (EDATE, EOMONTH)

6.1. Hàm EDATE: cộng trừ số tháng

=EDATE(ngày_gốc, 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ổ

=EOMONTH(ngày_gốc, số_tháng)
  • 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.

Ví dụ hàm EDATE và EOMONTH trong Excel tính hạn thanh toán và ngày chốt sổ cuối tháng

EDATE tính hạn thanh toán, EOMONTH lấy ngày chốt sổ cuối tháng.

⚠ Nhầm số tháng: số 0 mới là tháng hiện tại, số 1 là tháng sau. Ngoài ra, nếu EDATE hay EOMONTH hiện ra dãy số như 46112, chỉ là ô chưa định dạng ngày: chọn ô và đổi sang kiểu Date.

7. Nhóm 4: Đếm khoảng cách giữa hai ngày (DATEDIF)

=DATEDIF(ngày_đầu, ngày_cuối, “đơn_vị”)

Đơ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.

⚠ Hai điều làm nhiều người tưởng DATEDIF “không có”: đây là hàm ẩn nên gõ vào Excel không hiện gợi ý, cứ gõ đủ tên là chạy. Và nếu ngày đầu lớn hơn ngày cuối, hàm báo lỗi #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

=NETWORKDAYS(ngày_đầu, ngày_cuối, [vùng_ngày_lễ])

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).
💡 Vùng ngày lễ phải khóa bằng dấu $. Không khóa thì khi kéo công thức xuống, vùng sẽ trôi theo và kết quả sai dần mà không báo lỗi.

8.2. Hàm WORKDAY: tiến hoặc lùi N ngày làm việc

=WORKDAY(ngày_bắt_đầu, số_ngày, [vùng_ngày_lễ])

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

=NETWORKDAYS.INTL(ngày_đầu, ngày_cuối, [kiểu_nghỉ], [vùng_ngày_lễ])

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ỉ

Hàm WORKDAY và NETWORKDAYS.INTL trong Excel với danh sách kiểu 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 theo dõi công nợ khách hàng trong Excel dùng hàm WORKDAY, DATEDIF, NETWORKDAYS.INTL và bảng tổng hợp nhanh

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

⚠ Lỗi 1: Ngày dạng chữ → #VALUE!
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).
⚠ Lỗi 2: Ngày và tháng bị đảo
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.
⚠ Lỗi 3: Kết quả hiện ra dãy số
EDATE, EOMONTH, WORKDAY trả về số ngày dạng số. Chỉ cần định dạng ô thành Date.
⚠ Lỗi 4: WEEKDAY quên tham số kiểu
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.
⚠ Lỗi 5: DATEDIF báo #NUM!
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.
⚠ Lỗi 6: Vùng ngày lễ bị trôi
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

📥
File thực hành 12 hàm ngày tháng trong Excel
7 sheet: Hướng dẫn · Từ điển tra cứu 12 hàm · Bài tập cơ bản 24 câu · Đáp án · Dữ liệu công nợ gốc · Bài tập công nợ · Đáp án công nợ.

⬇ Tải file thực hành miễn phí (.xlsx)

File mở bằng Google Sheets. Bấm Tệp → Tải xuống → Microsoft Excel (.xlsx) để lưu về máy. Dùng tốt trên Excel 2010 trở lên.

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

❓ Vì sao gõ DATEDIF không thấy Excel gợi ý?
DATEDIF là hàm ẩn, giữ lại để tương thích với Lotus 1-2-3 nên Excel không đưa vào danh sách gợi ý. Bạn cứ gõ đủ tên và tham số, hàm vẫn chạy bình thường trên mọi phiên bản.
❓ EDATE khác gì so với cộng 30 ngày?
Cộng 30 ngày chỉ đúng với tháng có 30 ngày. EDATE cộng đúng số tháng theo lịch: 12/03 cộng 3 tháng luôn ra 12/06, và ngày cuối tháng được tự điều chỉnh khi tháng đích ngắn hơn.
❓ Cửa hàng chỉ nghỉ Chủ Nhật thì dùng hàm nào để đếm ngày làm việc?
Dùng NETWORKDAYS.INTL với kiểu nghỉ 11. Nếu cần tiến lùi ngày làm việc theo lịch đó thì dùng WORKDAY.INTL cũng với kiểu 11.
❓ Làm sao để ngày hôm nay không tự đổi khi mở file hôm sau?
Đừng dùng TODAY cho các ô cần cố định. Bấm Ctrl + ; để chèn ngày hiện tại dưới dạng giá trị tĩnh.
❓ File thực hành dùng được trên Google Sheets không?
Được. Các hàm trong bài đều có trên Google Sheets, kể cả DATEDIF và NETWORKDAYS.INTL. Riêng dấu ngăn tham số tùy cài đặt khu vực của bảng tính.

📺 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.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *