Mỗi lần lập timeline dự án, tôi mở lịch Google, đếm từng ngày từ thứ Hai đến thứ Sáu, bỏ qua cuối tuần, check danh sách ngày lễ, rồi ghi chú vào Excel. Một dự án có 6 công việc tốn 15 phút chỉ để tính ngày kết thúc. Nhầm một ngày cuối tuần là cả team nhận deadline sai.

Vấn đề của việc tính thủ công
Tháng trước, tôi quản lý 3 dự án song song với tổng 18 công việc. Mỗi công việc cần xác định ngày bắt đầu và kết thúc dựa trên số ngày làm việc. Tính thủ công nghĩa là mở lịch, đếm từng ngày, kiểm tra xem ngày đó có phải thứ Bảy, Chủ Nhật không, rồi xem có trùng ngày lễ 30/4 hay 1/5 không.
Mỗi lần thay đổi yêu cầu, tôi phải tính lại toàn bộ. Một công việc dự kiến 10 ngày làm việc, bắt đầu từ 4/3/2024, kết thúc ngày nào? Tôi đếm: 4/3 (Thứ Hai), 5/3 (Thứ Ba), 6/3 (Thứ Tư), 7/3 (Thứ Năm), 8/3 (Thứ Sáu) – đó là 5 ngày. Tiếp tục: 11/3 (Thứ Hai), 12/3 (Thứ Ba)… và cứ thế cho đến khi đủ 10 ngày. Mất 3 phút cho một công việc.
Khi khách hàng yêu cầu thêm 5 ngày buffer, tôi tính lại từ đầu. Khi có ngày lễ đột xuất, tất cả deadline dời lại. Tôi dành 4 giờ mỗi tuần chỉ để update timeline thay vì tập trung vào công việc thực sự.
Cách Excel tính deadline tự động
Hàm WORKDAY trong Excel tính toán ngày làm việc trong vài giây thay vì vài phút. Công cụ này tự động bỏ qua thứ Bảy, Chủ Nhật và các ngày lễ bạn chỉ định.
Cú pháp cơ bản:
=WORKDAY(ngày_bắt_đầu, số_ngày_làm_việc, [danh_sách_ngày_lễ])
Giải thích từng thành phần:
ngày_bắt_đầu: Ô chứa ngày khởi đầu dự án (ví dụ: 4/3/2024)số_ngày_làm_việc: Số ngày làm việc cần tính (10, 20, -5 nếu tính ngược)danh_sách_ngày_lễ: Vùng ô chứa các ngày nghỉ lễ (30/4, 1/5, 2/9)
Excel lưu trữ ngày tháng dưới dạng số serial. Ngày 1/1/1900 là số 1, ngày 1/1/2024 là số 45292. Hàm WORKDAY trả về số serial, bạn cần format thành định dạng ngày.
Ứng dụng quản lý dự án thực tế
Tôi có một dự án gồm 6 công việc liên tiếp. Ngày bắt đầu là 4/3/2024. Danh sách ngày lễ: 30/4, 1/5, 2/9.
Bảng dữ liệu:
| Công việc | Số ngày | Ngày bắt đầu | Ngày kết thúc |
|---|---|---|---|
| Task 1 | 10 | 4/3/2024 | ? |
| Task 2 | 5 | ? | ? |
| Task 3 | 8 | ? | ? |
Tạo danh sách ngày lễ: Tôi nhập các ngày nghỉ vào cột riêng (ví dụ F2:F4):
- F2: 30/4/2024
- F3: 1/5/2024
- F4: 2/9/2024
Tính ngày kết thúc Task 1: Trong ô D2 (Ngày kết thúc), nhập công thức:
=WORKDAY(C2,B2,$F$2:$F$4)
Trong đó:
- C2 là ngày bắt đầu (4/3/2024)
- B2 là số ngày làm việc (10)
- $F$2:$F$4 là danh sách ngày lễ (dấu $ để giữ cố định khi copy công thức)
Nhấn Enter, Excel trả về số serial như 45381. Chuột phải ô D2, chọn Format Cells, chọn Date, chọn định dạng ngày tháng phù hợp. Kết quả: 19/3/2024.
Tính ngày bắt đầu Task 2: Task 2 bắt đầu ngay sau khi Task 1 kết thúc. Trong ô C3, nhập:
=WORKDAY(D2,1,$F$2:$F$4)
Công thức này lấy ngày kết thúc Task 1, cộng thêm 1 ngày làm việc để bắt đầu Task 2. Kết quả: 20/3/2024.
Tính ngày kết thúc Task 2: Trong ô D3:
=WORKDAY(C3,B3,$F$2:$F$4)
Copy công thức xuống các dòng còn lại. Excel tự động tính toán cả 6 công việc trong 30 giây.
Xử lý các tình huống đặc biệt
Tính ngược về quá khứ: Nếu cần biết ngày bắt đầu khi đã có deadline, dùng số âm:
=WORKDAY(D2,-10,$F$2:$F$4)
Ví dụ: Deadline là 19/3/2024, cần 10 ngày làm việc, ngày bắt đầu là 4/3/2024.
Lỗi thường gặp:
Lỗi #VALUE! xuất hiện khi:
- Ngày bắt đầu không đúng định dạng ngày tháng
- Ô chứa text thay vì số
Cách sửa: Click ô chứa ngày, Format Cells, chọn Date. Nếu vẫn lỗi, nhập lại ngày theo định dạng dd/mm/yyyy hoặc dùng hàm DATE:
=DATE(2024,3,4)
Lỗi #NUM! xuất hiện khi:
- Ngày bắt đầu cộng số ngày làm việc tạo ra ngày không hợp lệ (trước 1/1/1900 hoặc sau 31/12/9999)
Xử lý số thập phân: Nếu nhập 10.7 ngày, Excel tự động cắt thành 10 ngày. Hàm chỉ nhận số nguyên.
Tùy chỉnh ngày cuối tuần với WORKDAY.INTL
Hàm WORKDAY mặc định nghỉ thứ Bảy và Chủ Nhật. Nếu công ty bạn nghỉ Thứ Tư và Chủ Nhật, dùng WORKDAY.INTL:
=WORKDAY.INTL(ngày_bắt_đầu, số_ngày, [mã_cuối_tuần], [danh_sách_ngày_lễ])
Mã cuối tuần phổ biến:
- 1 hoặc bỏ trống: Thứ Bảy + Chủ Nhật (mặc định)
- 2: Chủ Nhật + Thứ Hai
- 3: Thứ Hai + Thứ Ba
- 11: Chỉ Chủ Nhật
- 12: Chỉ Thứ Hai
- 13: Chỉ Thứ Ba
Hoặc dùng chuỗi 7 ký tự (0 = làm việc, 1 = nghỉ):
=WORKDAY.INTL(C2,B2,"0010001",$F$2:$F$4)
Chuỗi “0010001” nghĩa là:
- Thứ Hai (0): làm việc
- Thứ Ba (0): làm việc
- Thứ Tư (1): nghỉ
- Thứ Năm (0): làm việc
- Thứ Sáu (0): làm việc
- Thứ Bảy (0): làm việc
- Chủ Nhật (1): nghỉ
Kết hợp với các hàm khác
Tính số ngày làm việc giữa 2 mốc thời gian: Dùng hàm NETWORKDAYS:
=NETWORKDAYS(ngày_bắt_đầu, ngày_kết_thúc, [danh_sách_ngày_lễ])
Ví dụ: Từ 4/3/2024 đến 19/3/2024 có bao nhiêu ngày làm việc?
=NETWORKDAYS("4/3/2024","19/3/2024",$F$2:$F$4)
Kết quả: 10 ngày.
Tính deadline dựa trên ngày hiện tại:
=WORKDAY(TODAY(),10,$F$2:$F$4)
TODAY() trả về ngày hôm nay, cộng thêm 10 ngày làm việc.
Cảnh báo deadline sắp tới: Dùng Conditional Formatting để tô màu deadline trong 3 ngày:
- Chọn cột Ngày kết thúc
- Home > Conditional Formatting > New Rule
- Chọn “Format only cells contain”
- Cell Value “less than”
=TODAY()+3 - Chọn màu đỏ
Sau một tháng áp dụng
Timeline của 3 dự án (18 công việc) giờ update trong 2 phút thay vì 4 giờ. Khi khách hàng thay đổi yêu cầu, tôi chỉ sửa số ngày trong một ô, toàn bộ deadline tự động dời theo. Không còn nhầm lẫn cuối tuần hay quên ngày lễ.
Hàm WORKDAY hoạt động trên Excel 2010 trở lên, bao gồm Excel 365. WORKDAY.INTL yêu cầu Excel 2010 trở lên. Nếu bạn quản lý nhiều dự án hoặc thường xuyên lập timeline, hàm này tiết kiệm hàng giờ mỗi tuần. Bắt đầu với dự án nhỏ để làm quen, sau đó áp dụng cho toàn bộ hệ thống quản lý công việc.
