Trong môi trường làm việc hiện đại, việc quản lý thời gian và tính toán ngày làm việc là một nhu cầu thiết yếu đối với các nhà quản lý dự án, nhân sự, kế toán, và hầu hết các bộ phận trong doanh nghiệp. Microsoft Excel, với tính năng mạnh mẽ và linh hoạt, cung cấp nhiều công cụ giúp chúng ta nhanh chóng xác định số ngày làm việc trong một khoảng thời gian nhất định, loại trừ ngày nghỉ cuối tuần và các ngày lễ. Bài viết này sẽ hướng dẫn chi tiết cách đếm ngày làm việc trong Excel (count working days in excel), từ các hàm cơ bản như NETWORKDAYS và WORKDAY đến các kỹ thuật nâng cao sử dụng NETWORKDAYS.INTL, công thức mảng, và VBA. Bạn sẽ nắm được cách:
- Sử dụng hàm
NETWORKDAYSđể tính ngày làm việc chuẩn (Thứ Hai – Thứ Sáu) và loại trừ ngày lễ. - Tùy chỉnh lịch làm việc với
NETWORKDAYS.INTL(ví dụ: làm việc từ Thứ Hai – Thứ Bảy, hoặc chỉ làm việc vào các ngày cụ thể). - Tạo ngày kết thúc dự án dựa trên số ngày làm việc mong muốn bằng hàm
WORKDAYvàWORKDAY.INTL. - Xây dựng công thức mảng để tính ngày làm việc khi không có danh sách ngày lễ.
- Sử dụng VBA để tự động hoá việc tính ngày làm việc cho các báo cáo lớn.
- Áp dụng các mẹo nhanh, tránh lỗi thường gặp và tối ưu hoá hiệu suất.
Có thể bạn quan tâm: Cách Đếm Số Lần Xuất Hiện Của Từ Cụ Thể Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
1. Giới Thiệu Tổng Quan Về Ngày Làm Việc Trong Excel
1.1. Định Nghĩa “Ngày Làm Việc”
Trong bối cảnh doanh nghiệp, ngày làm việc thường được hiểu là các ngày mà nhân viên phải có mặt tại công ty hoặc thực hiện công việc, thường là từ Thứ Hai đến Thứ Sáu. Tuy nhiên, tùy vào từng công ty, mô hình làm việc có thể thay đổi:
- Lịch 5 ngày/tuần (Thứ Hai – Thứ Sáu, nghỉ Thứ Bảy – Chủ Nhật).
- Lịch 6 ngày/tuần (Thứ Hai – Thứ Bảy, nghỉ Chủ Nhật).
- Lịch làm việc theo ca (ví dụ: chỉ làm việc vào các ngày thứ Hai, thứ Tư, thứ Sáu).
- Ngày lễ quốc gia, ngày nghỉ công ty (ví dụ: Tết Nguyên Đán, Quốc Khánh).
Excel cung cấp các hàm có thể tùy biến để đáp ứng những yêu cầu này.
1.2. Tại Sao Cần Đếm Ngày Làm Việc?
- Quản lý dự án: Xác định thời gian thực hiện công việc, tính deadline chính xác.
- Tính lương: Đối với nhân viên trả lương theo ngày công, cần biết số ngày làm việc thực tế.
- Báo cáo tài chính: Tính chi phí nhân sự, chi phí dự án.
- Lập kế hoạch nguồn lực: Phân bổ nhân lực, lên lịch làm việc.
Có thể bạn quan tâm: Cách Đếm Số Ký Tự Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
2. Hàm NETWORKDAYS – Đếm Ngày Làm Việc Cơ Bản
2.1. Cú Pháp Cơ Bản
=NETWORKDAYS(start_date, end_date, holidays)
- start_date: Ngày bắt đầu (có thể là ô chứa ngày hoặc hàm
DATE). - end_date: Ngày kết thúc.
- holidays (tùy chọn): Dải ô chứa danh sách các ngày lễ (có thể là một hoặc nhiều ngày). Nếu không có, bỏ qua tham số này.
Hàm này mặc định tính ngày làm việc từ Thứ Hai – Thứ Sáu, tự động loại trừ Thứ Bảy và Chủ Nhật.
2.2. Ví Dụ Thực Tế
Giả sử:
| A | B |
|---|---|
| Ngày bắt đầu | 01/03/2026 |
| Ngày kết thúc | 31/03/2026 |
| Ngày lễ | 08/03/2026; 15/03/2026 |
- Bước 1: Nhập ngày bắt đầu và kết thúc vào ô A2 và A3.
- Bước 2: Nhập danh sách ngày lễ vào dải C2:C3.
- Bước 3: Công thức:
=NETWORKDAYS(A2, A3, C2:C3)
Kết quả: 21 ngày làm việc (31 ngày trong tháng – 8 ngày cuối tuần – 2 ngày lễ).
2.3. Lưu Ý Khi Dùng NETWORKDAYS
| Lỗi Thường Gặp | Nguyên Nhân | Cách Khắc Phục |
|---|---|---|
| #VALUE! | Một trong các đối số không phải là ngày hợp lệ. | Đảm bảo ô chứa ngày được định dạng là Date. |
| Kết quả sai lệch | Danh sách ngày lễ không bao gồm các ngày cuối tuần. | NETWORKDAYS tự động loại trừ cuối tuần; ngày lễ chỉ cần liệt kê các ngày làm việc. |
| Không tính ngày lễ đúng | Định dạng ngày lễ không khớp (ví dụ: ngày/ tháng/ năm vs tháng/ ngày/ năm). | Kiểm tra định dạng ngày trong Excel (Format Cells → Date). |
Có thể bạn quan tâm: Hàm Random Không Lặp Lại Trong Excel: Cách Tạo Dữ Liệu Ngẫu Nhiên Độc Đáo, Ứng Dụng Thực Tiễn Và Mẹo Tối Ưu
3. Hàm NETWORKDAYS.INTL – Tùy Chỉnh Lịch Làm Việc
Khi công ty có lịch làm việc không chuẩn (ví dụ: làm việc 6 ngày/tuần, hoặc chỉ làm việc vào các ngày cụ thể), NETWORKDAYS.INTL cho phép bạn định nghĩa ngày cuối tuần bất kỳ.
3.1. Cú Pháp
=NETWORKDAYS.INTL(start_date, end_date, weekend, holidays)
- weekend: Chuỗi 7 ký tự (hoặc một số mã) xác định ngày cuối tuần. Chuỗi gồm 0 (ngày làm việc) và 1 (ngày cuối tuần), bắt đầu từ Thứ Hai.
- Ví dụ:
"0000011"→ Thứ Bảy và Chủ Nhật là ngày cuối tuần (giống mặc định). "1111110"→ Chỉ Chủ Nhật là ngày cuối tuần (làm việc từ Thứ Hai – Thứ Bảy)."0000000"→ Không có ngày cuối tuần (tất cả ngày đều là ngày làm việc).- holidays: Tương tự như hàm
NETWORKDAYS.
3.2. Ví Dụ Thực Tế: Lịch 6 Ngày/tuần
Giả sử công ty làm việc từ Thứ Hai – Thứ Bảy, nghỉ Chủ Nhật.
- weekend =
"0000001"(Chỉ ngày cuối tuần là Chủ Nhật).
Công thức:
=NETWORKDAYS.INTL(A2, A3, "0000001", C2:C3)
Nếu A2 = 01/04/2026, A3 = 30/04/2026, và không có ngày lễ, kết quả sẽ là 26 ngày (30 ngày – 4 Chủ Nhật).
3.3. Sử Dụng Mã weekend Tiết Kiệm
Excel cung cấp mã số (1‑17) cho các cấu hình cuối tuần phổ biến:
| Mã | Định Nghĩa |
|---|---|
| 1 | Thứ Hai – Thứ Sáu là ngày làm việc (giá trị mặc định). |
| 2 | Thứ Hai – Thứ Thứ Bảy là ngày làm việc, Chủ Nhật nghỉ. |
| 3 | Thứ Hai – Thứ Sáu, Chủ Nhật là ngày làm việc, Thứ Bảy nghỉ. |
| 7 | Thứ Hai – Thứ Năm là ngày làm việc, Thứ Sáu – Chủ Nhật nghỉ. |
| 11 | Thứ Hai – Thứ Bảy là ngày làm việc, Chủ Nhật nghỉ (tương tự chuỗi “0000001”). |
Ví dụ:
=NETWORKDAYS.INTL(A2, A3, 2, C2:C3) // Lịch 6 ngày/tuần
3.4. Khi Nào Nên Dùng NETWORKDAYS.INTL
- Khi công ty có ngày nghỉ khác ngày cuối tuần chuẩn (ví dụ: nghỉ Thứ Hai hàng tháng).
- Khi cần tính điểm danh cho ca làm việc đặc biệt (ví dụ: làm việc 3 ngày/tuần).
- Khi muốn bỏ qua một ngày cuối tuần cụ thể (ví dụ: công ty làm việc vào Chủ Nhật, nhưng không vào Thứ Bảy).
4. Hàm WORKDAY Và WORKDAY.INTL – Tính Ngày Kết Thúc Dựa Trên Số Ngày Làm Việc
4.1. Công Dụng
- WORKDAY: Tính ngày kết thúc sau một số ngày làm việc, loại trừ cuối tuần (Thứ Hai – Thứ Sáu) và ngày lễ.
- WORKDAY.INTL: Tương tự, nhưng cho phép tùy chỉnh ngày cuối tuần.
4.2. Cú Pháp
=WORKDAY(start_date, days, holidays)
=WORKDAY.INTL(start_date, days, weekend, holidays)
- days: Số ngày làm việc muốn cộng (có thể là số âm để tính ngày bắt đầu ngược lại).
- start_date: Ngày bắt đầu (không tính ngày này nếu là ngày làm việc; Excel sẽ bắt đầu tính từ ngày kế tiếp).
4.3. Ví Dụ: Dự Án 15 Ngày Làm Việc
- Ngày bắt đầu: 01/05/2026 (Wednesday)
- Số ngày làm việc: 15
- Ngày lễ: 03/05/2026 (Ngày lễ Quốc tế Lao Động)
Công thức:
=WORKDAY(A2, 15, C2:C2)
Kết quả: 22/05/2026 (bỏ qua cuối tuần và ngày lễ 03/05).
4.4. Tùy Chỉnh Lịch 6 Ngày/tuần
=WORKDAY.INTL(A2, 15, "0000001", C2:C2)
Kết quả sẽ khác vì chỉ Chủ Nhật là ngày cuối tuần.
5. Tính Ngày Làm Việc Khi Không Có Danh Sách Ngày Lễ

Có thể bạn quan tâm: Cách Đếm Giá Trị Trong Cột Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
Trong một số trường hợp, chúng ta không có sẵn danh sách ngày lễ, hoặc muốn tính nhanh số ngày làm việc chỉ dựa trên ngày bắt đầu và kết thúc. Có một số cách:
5.1. Công Thức Mảng Không Cần Danh Sách Lễ
Giả sử chúng ta chỉ muốn tính ngày làm việc chuẩn (Thứ Hai – Thứ Sáu) và không quan tâm đến ngày lễ.
=SUMPRODUCT(--(WEEKDAY(ROW(INDIRECT(A2&":"&A3)),2)<6))
ROW(INDIRECT(A2&":"&A3))tạo mảng các số ngày.WEEKDAY(...,2)trả về 1‑5 cho Thứ Hai‑Thứ Sáu, 6‑7 cho Thứ Bảy‑Chủ Nhật.--(...<6)chuyển TRUE/FALSE thành 1/0.SUMPRODUCTcộng tổng.
5.2. Giải Thích Chi Tiết
| Bước | Mô tả |
|---|---|
| 1 | INDIRECT(A2&":"&A3) tạo chuỗi “01/03/2026:31/03/2026”. |
| 2 | ROW(...) trả về mảng các số nguyên đại diện cho ngày trong Excel (serial number). |
| 3 | WEEKDAY(...,2) chuyển thành 1‑7 (Mon‑Sun). |
| 4 | Kiểm tra <6 để giữ lại chỉ các ngày từ Mon‑Fri. |
| 5 | SUMPRODUCT cộng lại số ngày. |
5.3. Khi Cần Loại Trừ Ngày Lễ Tự Động
Nếu bạn có một danh sách ngày lễ trong một bảng dữ liệu nhưng không muốn nhập trực tiếp vào hàm, có thể dùng VLOOKUP hoặc COUNTIF trong công thức mảng:
=SUMPRODUCT(--(WEEKDAY(ROW(INDIRECT(A2&":"&A3)),2)<6), --(COUNTIF(holidays, ROW(INDIRECT(A2&":"&A3)))=0))
Trong đó holidays là dải ô chứa ngày lễ.
6. Sử Dụng VBA Để Đếm Ngày Làm Việc Trong Các Tập Tin Lớn
Khi làm việc với hàng ngàn dòng dữ liệu, các công thức mảng có thể làm chậm workbook. VBA cung cấp cách tính nhanh hơn và có thể tự động hoá quy trình.
6.1. Macro Đếm Ngày Làm Việc Cơ Bản
Function CountWorkDays(StartDate As Date, EndDate As Date, _ Optional Holidays As Range, _ Optional WeekendPattern As String = "0000011") As Long Dim d As Date, cnt As Long Dim isHoliday As Boolean For d = StartDate To EndDate ' Kiểm tra cuối tuần dựa trên chuỗi WeekendPattern If Mid(WeekendPattern, Weekday(d, vbMonday), 1) = "0" Then ' Kiểm tra ngày lễ nếu có isHoliday = False If Not Holidays Is Nothing Then If Not IsError(Application.Match(d, Holidays, 0)) Then isHoliday = True End If If Not isHoliday Then cnt = cnt + 1 End If Next d CountWorkDays = cnt
End Function
Cách dùng trong ô Excel:
=CountWorkDays(A2, A3, C2:C5, "0000001") // Lịch 6 ngày/tuần
6.2. Tối Ưu Hóa Với Mảng
Để tăng tốc, bạn có thể chuyển danh sách ngày lễ sang mảng và dùng hàm Application.InStr:
Function CountWorkDaysFast(StartDate As Date, EndDate As Date, _ Optional Holidays As Variant, _ Optional WeekendPattern As String = "0000011") As Long Dim arrHol As Variant, i As Long, d As Date, cnt As Long Dim isHoliday As Boolean If Not IsMissing(Holidays) Then arrHol = Holidays.Value For d = StartDate To EndDate If Mid(WeekendPattern, Weekday(d, vbMonday), 1) = "0" Then isHoliday = False If Not IsMissing(Holidays) Then For i = LBound(arrHol) To UBound(arrHol) If arrHol(i, 1) = d Then isHoliday = True Exit For End If Next i End If If Not isHoliday Then cnt = cnt + 1 End If Next d CountWorkDaysFast = cnt
End Function
6.3. Khi Nào Nên Dùng VBA?
- Dữ liệu lớn: Hơn 10.000 dòng.
- Tự động hoá báo cáo: Gửi email, tạo file PDF.
- Yêu cầu tùy chỉnh phức tạp: Ví dụ, tính ngày làm việc dựa trên ca làm việc cá nhân.
7. Các Mẹo Nhanh Và Thông Tin Thêm
7.1. Định Dạng Ngày Đúng
- Sử dụng Format Cells → Date để chắc chắn Excel nhận dạng là ngày.
- Tránh nhập ngày dạng văn bản (text) như “01-03-2026” mà không có định dạng date.
7.2. Sử Dụng Tên Dải (Named Ranges)
- Đặt tên cho dải ngày lễ: Select C2:C10 → Formulas → Define Name → Holidays.
- Công thức trở nên ngắn gọn:
=NETWORKDAYS(A2, A3, Holidays).
7.3. Kiểm Tra Lỗi Với IFERROR
=IFERROR(NETWORKDAYS(A2, A3, Holidays), "Ngày không hợp lệ")
7.4. Tính Ngày Làm Việc Cho Nhiều Dòng
Giả sử có danh sách dự án trong cột A (start) và B (end). Đặt công thức trong C2 và kéo xuống:
=NETWORKDAYS(A2, B2, Holidays)
7.5. Khi Cần Đếm Ngày Làm Việc Của Nhiều Nhân Viên Với Lịch Khác Nhau
- Tạo bảng lịch làm việc: Mỗi nhân viên có một cột
WeekendPattern. - Dùng hàm tùy chỉnh trong VBA để truyền pattern riêng cho từng người.
8. Tổng Kết
Việc đếm ngày làm việc trong Excel không chỉ dừng lại ở hàm NETWORKDAYS đơn giản. Với các công cụ mở rộng như NETWORKDAYS.INTL, WORKDAY.INTL, công thức mảng, và VBA, bạn có thể:
- Tùy chỉnh lịch làm việc cho mọi mô hình doanh nghiệp.
- Tự động hoá tính toán ngày kết thúc dự án, lương, và báo cáo.
- Xử lý dữ liệu lớn một cách hiệu quả, giảm tải cho workbook.
Hãy áp dụng các kỹ thuật trên vào thực tiễn công việc của bạn, từ các bảng tính nhỏ cho cá nhân đến hệ thống quản lý dự án quy mô doanh nghiệp. Khi bạn đã nắm vững cách count working days in excel, việc quản lý thời gian và nguồn lực sẽ trở nên đơn giản, chính xác và nhanh chóng hơn bao giờ hết.
Chúc bạn thành công trong việc áp dụng những kiến thức này vào công việc hàng ngày!

Tiến sĩ Lê Thống Nhất sinh năm 1955 tại Nghệ An, là nhà giáo, nhà báo và doanh nhân trong lĩnh vực giáo dục. Ông từng giảng dạy Toán học tại Trường THPT Chuyên Phan Bội Châu và đảm nhiệm nhiều vai trò trong ngành giáo dục, từ viết sách, biên soạn tài liệu đến sáng lập các dự án hỗ trợ học tập trực tuyến.
Ông là người sáng lập BigSchool – nền tảng giáo dục trực tuyến kết nối giáo viên và học sinh cả nước. Ngoài ra, ông còn nổi tiếng với vai trò tác giả, diễn giả truyền cảm hứng và khách mời trên nhiều chương trình truyền hình, trong đó có “Ai là triệu phú” trên truyền hình VTV.
Trong suốt sự nghiệp, Tiến sĩ Lê Thống Nhất đã nhận nhiều giải thưởng giáo dục và được biết đến như một người luôn đổi mới, ứng dụng công nghệ vào dạy và học, góp phần lan tỏa tri thức và niềm say mê học tập cho thế hệ trẻ.
