Hàm WORKDAY và NETWORKDAYS trong Excel để tính ngày làm việc

  • Chia Sẻ Cái Này
Michael Brown

Hướng dẫn ngắn này giải thích cách sử dụng các hàm NETWORKDAYS và WORKDAY của Excel để tính ngày làm việc với các tham số cuối tuần và ngày lễ tùy chỉnh.

Microsoft Excel cung cấp hai hàm được thiết kế đặc biệt để tính ngày trong tuần - WORKDAY và NETWORKDAYS.

Hàm WORKDAY trả về ngày N ngày làm việc trong tương lai hoặc trong quá khứ và bạn có thể sử dụng hàm này để cộng hoặc trừ ngày làm việc cho một ngày nhất định.

Sử dụng hàm NETWORKDAYS , bạn có thể tính số ngày làm việc giữa hai ngày mà bạn chỉ định.

Trong Excel 2010 trở lên, có sẵn các sửa đổi mạnh mẽ hơn cho các hàm nói trên, WORKDAY.INTL và NETWORKDAYS.INTL, cho phép bạn xác định ngày nào và bao nhiêu ngày là ngày cuối tuần.

Và bây giờ, hãy xem xét kỹ hơn từng hàm và xem bạn có thể sử dụng hàm đó như thế nào để tính ngày làm việc trong bảng tính Excel của bạn.

    Hàm WORKDAY trong Excel

    Hàm WORKDAY trong Excel trả về một ngày là một số ngày làm việc đã cho trước hoặc trước ngày bắt đầu. Nó không bao gồm các ngày cuối tuần cũng như bất kỳ ngày lễ nào mà bạn chỉ định.

    Hàm WORKDAY được dùng để tính ngày làm việc, các mốc quan trọng và ngày đến hạn dựa trên lịch làm việc tiêu chuẩn, trong đó Thứ Bảy và Chủ Nhật là ngày cuối tuần.

    WORKDAY là một hàm tích hợp sẵn trong Excel 2007 - 365. Trong các phiên bản cũ hơn, bạn cần bật tính năng Phân tíchmột tập hợp nhỏ những thứ thiết yếu và lấy phần còn lại. Tôi cảm ơn bạn đã đọc và hy vọng sẽ thấy trên blog của chúng tôi vào tuần tới!

    ToolPak.

    Khi sử dụng WORKDAY trong Excel, bạn phải nhập các đối số sau:

    WORKDAY(start_date, days, [holidays])

    2 đối số đầu tiên là bắt buộc và đối số cuối cùng là tùy chọn :

    • Ngày_bắt đầu - ngày bắt đầu tính các ngày trong tuần.
    • Ngày - số ngày làm việc cần cộng/trừ từ start_date. Số dương trả về ngày trong tương lai, số âm trả về ngày trong quá khứ.
    • Ngày lễ - danh sách ngày tùy chọn không được tính là ngày làm việc. Đây có thể là một dải ô chứa ngày mà bạn muốn loại trừ khỏi các phép tính hoặc một hằng số mảng gồm các số sê-ri biểu thị ngày.

    Bây giờ bạn đã biết những điều cơ bản, hãy xem cách bạn có thể sử dụng hàm WORKDAY trong bảng tính Excel của bạn.

    Cách sử dụng WORKDAY để cộng/trừ ngày làm việc cho đến nay

    Để tính ngày làm việc trong Excel, hãy làm theo các quy tắc đơn giản sau:

    • Để thêm ngày làm việc, hãy nhập một số dương làm đối số ngày của công thức WORKDAY.
    • Để trừ ngày làm việc, hãy sử dụng một số âm trong đối số ngày .

    Giả sử bạn có ngày bắt đầu trong ô A2, danh sách các ngày lễ trong ô B2:B5 và bạn muốn tìm hiểu ngày 30 ngày làm việc trong tương lai và quá khứ. Bạn có thể thực hiện việc này bằng các công thức sau:

    Để thêm 30 ngày làm việc vào ngày bắt đầu, không bao gồm các ngày nghỉ lễ trongB2:B5:

    =WORKDAY(A2, 30, B2:B5)

    Để trừ 30 ngày làm việc kể từ ngày bắt đầu, không bao gồm các ngày lễ trong B2:B5:

    =WORKDAY(A2, -30, B2:B5)

    Để tính các ngày trong tuần dựa trên vào ngày hiện tại , hãy sử dụng hàm TODAY() làm ngày bắt đầu:

    Để thêm 30 ngày làm việc vào ngày hôm nay:

    =WORKDAY(TODAY(), 30)

    Tới trừ 30 ngày làm việc từ ngày hôm nay:

    =WORKDAY(TODAY(), -30)

    Để cung cấp ngày bắt đầu trực tiếp cho công thức, hãy sử dụng hàm DATE:

    =WORKDAY(DATE(2015,5,6), 30)

    Hàm ảnh chụp màn hình sau đây minh họa kết quả của tất cả những công thức này và một số công thức NGÀY LÀM VIỆC khác:

    Và đương nhiên, bạn có thể nhập số ngày làm việc để cộng/trừ vào ngày bắt đầu trong ô nào đó, rồi tham chiếu đến ô đó trong công thức của bạn. Ví dụ:

    =WORKDAY(A2, C2)

    Trong đó A2 là ngày bắt đầu và C2 là số ngày không phải cuối tuần sau (số âm) hoặc trước (số dương) ngày bắt đầu, không có ngày nghỉ để loại trừ.

    Mẹo. Trong Excel 365 và 2021, bạn có thể sử dụng WORKDAY kết hợp với SEQUENCE để tạo chuỗi ngày làm việc.

    Hàm WORKDAY.INTL của Excel

    WORKDAY.INTL là một sửa đổi mạnh mẽ hơn của WORKDAY chức năng hoạt động với thông số cuối tuần tùy chỉnh . Cũng như WORKDAY, hàm này trả về một ngày là một số ngày làm việc được chỉ định trong tương lai hoặc trong quá khứ, nhưng cho phép bạn xác định ngày nào trong tuần sẽ được coi là ngày cuối tuần.

    Hàm WORKDAY.INTL đã được giới thiệu trongExcel 2010 và các phiên bản Excel cũ hơn không có sẵn.

    Cú pháp của hàm WORKDAY.INTL trong Excel như sau:

    WORKDAY.INTL(ngày_bắt đầu, ngày, [cuối tuần], [ngày lễ])

    Hai đối số đầu tiên là bắt buộc và giống với WORKDAY's:

    Start_date - ngày đầu tiên.

    Days - số lượng ngày làm việc trước (giá trị âm) hoặc sau (giá trị dương) ngày bắt đầu. Nếu đối số days được cung cấp dưới dạng số thập phân, thì đối số này sẽ bị cắt bớt thành số nguyên.

    Hai đối số cuối cùng là tùy chọn:

    Cuối tuần - chỉ định các ngày trong tuần sẽ là ngày nào tính là ngày cuối tuần. Đây có thể là một số hoặc một chuỗi, như minh họa bên dưới.

    Số Ngày cuối tuần
    1 hoặc bỏ qua Thứ bảy, Chủ nhật
    2 Chủ nhật, Thứ hai
    3 Thứ Hai, Thứ Ba
    4 Thứ Ba, Thứ Tư
    5 Thứ Tư, Thứ Năm
    6 Thứ Năm, Thứ Sáu
    7 Thứ Sáu, Thứ Bảy
    11 Chỉ Chủ Nhật
    12 Chỉ Thứ Hai
    13 Chỉ thứ Ba
    14 Chỉ thứ Tư
    15 Chỉ thứ Năm
    16 Chỉ thứ Sáu
    17 Chỉ thứ Bảy

    Chuỗi cuối tuần - một chuỗi bảy số 0 và 1 đại diện cho bảy ngày trong tuần,bắt đầu từ thứ Hai. 1 đại diện cho một ngày không làm việc và 0 đại diện cho một ngày làm việc. Ví dụ:

    • "0000011" - Thứ bảy và Chủ nhật là cuối tuần.
    • "1000001" - Thứ hai và Chủ nhật là cuối tuần.

    Ngay từ cái nhìn đầu tiên , chuỗi ngày cuối tuần có vẻ thừa, nhưng cá nhân tôi thích phương pháp này hơn vì bạn có thể tạo chuỗi ngày cuối tuần một cách nhanh chóng mà không cần phải nhớ bất kỳ số nào.

    Ngày lễ - một danh sách ngày tùy chọn bạn muốn loại trừ khỏi lịch ngày làm việc. Đây có thể là một dải ô chứa ngày hoặc một hằng số mảng gồm các giá trị sê-ri đại diện cho các ngày đó.

    Sử dụng WORKDAY.INTL trong Excel - ví dụ về công thức

    Ồ, số lượng lớn khá lớn lý thuyết mà chúng ta vừa thảo luận có vẻ khá phức tạp và khó hiểu, nhưng việc thử áp dụng các công thức sẽ khiến mọi việc trở nên thực sự dễ dàng.

    Trên tập dữ liệu của chúng tôi, với ngày bắt đầu trong ô A2 và danh sách các ngày lễ trong ô A5 :A8, hãy tính ngày làm việc với các ngày cuối tuần tùy chỉnh.

    Để thêm 30 ngày làm việc vào ngày bắt đầu, thứ Sáu và thứ Bảy được tính là cuối tuần và ngày lễ trong A5:A8 bị loại trừ:

    =WORKDAY.INTL(A2, 30, 7, A5:A8)

    hoặc

    =WORKDAY.INTL(A2, 30, "0000110", A5:A8)

    Để trừ đi 30 ngày làm việc kể từ ngày bắt đầu, Chủ Nhật và Thứ Hai được tính là cuối tuần và ngày lễ trong A5:A8 bị loại trừ :

    =WORKDAY.INTL(A2, -30, 2, A5:A8)

    hoặc

    =WORKDAY.INTL(A2, -30, "1000001", A5:A8)

    Để thêm 10 ngày làm việc vào ngày hiện tại , Chủ nhật là ngày cuối tuần duy nhất, khôngngày lễ:

    =WORKDAY.INTL(TODAY(), 10, 11)

    hoặc

    =WORKDAY.INTL(A2, 10, "0000001")

    Trong trang tính Excel của bạn, các công thức có thể giống như sau:

    Lưu ý. Cả hàm Excel WORKDAY và WORKDAY.INTL đều trả về số sê-ri đại diện cho ngày. Để các số đó được hiển thị dưới dạng ngày, hãy chọn các ô có số và nhấn Ctrl+1 để mở hộp thoại Định dạng ô . Trên tab Số , chọn Ngày trong danh sách Danh mục và chọn định dạng ngày bạn muốn. Để biết các bước chi tiết, vui lòng xem Cách thay đổi định dạng ngày trong Excel.

    Lỗi WORKDAY và WORKDAY.INTL trong Excel

    Nếu công thức Excel WORKDAY hoặc WORKDAY.INTL của bạn trả về lỗi, lý do có thể là một trong các nguyên nhân sau:

    # Lỗi NUM! xảy ra nếu:

    • sự kết hợp của các đối số start_date days dẫn đến một ngày không hợp lệ hoặc
    • đối số weekend trong hàm WORKDAY.INTL không hợp lệ .

    #VALUE! xảy ra lỗi nếu:

    • start_date hoặc bất kỳ giá trị nào trong holidays không phải là ngày hợp lệ hoặc
    • Đối số days không phải là số.

    Hàm NETWORKDAYS trong Excel

    Hàm NETWORKDAYS trong Excel trả về số ngày làm việc giữa hai ngày, không bao gồm các ngày cuối tuần và, tùy chọn, các ngày lễ mà bạn chỉ định.

    Cú pháp của Excel NETWORKDAYS trực quan và dễ nhớ:

    NETWORKDAYS(start_date, end_date, [holidays])

    Hai đối số đầu tiên là bắt buộc và đối số thứ ba làtùy chọn:

    • Ngày_bắt đầu - ngày đầu tiên bắt đầu tính ngày làm việc.
    • Ngày_kết thúc - ngày kết thúc khoảng thời gian mà bạn đang đếm số ngày làm việc.

    Cả ngày bắt đầu và ngày kết thúc đều được tính trong số ngày làm việc được trả về.

    • Ngày lễ - một danh sách tùy chọn của những ngày lễ không được tính là ngày làm việc.

    Cách sử dụng NETWORKDAYS trong Excel - ví dụ về công thức

    Giả sử bạn có một danh sách các ngày nghỉ trong các ô A2:A5, ngày bắt đầu ở cột B, ngày kết thúc ở cột C và bạn muốn biết giữa các ngày này có bao nhiêu ngày làm việc. Công thức NETWORKDAYS thích hợp rất dễ tìm ra:

    =NETWORKDAYS(B2, C2, $A$2:$A$5)

    Lưu ý rằng hàm NETWORKDAYS trong Excel trả về giá trị dương khi ngày bắt đầu nhỏ hơn ngày kết thúc và giá trị âm nếu ngày bắt đầu nhỏ hơn ngày kết thúc. ngày kết thúc gần đây hơn ngày bắt đầu (như trong hàng 5):

    Hàm NETWORKDAYS.INTL của Excel

    Giống như NETWORKDAYS, hàm NETWORKDAYS.INTL của Excel tính toán số ngày trong tuần giữa hai ngày nhưng cho phép bạn chỉ định ngày nào sẽ được tính là ngày cuối tuần.

    Cú pháp của hàm NETWORKDAYS.INTL rất giống với hàm NETWORKDAYS', ngoại trừ nó có thêm [ngày cuối tuần ] tham số cho biết ngày nào trong tuần sẽ được tính là cuối tuần.

    NETWORKDAYS.INTL( start_date, end_date, [weekend], [holidays] )

    Đối số weekend có thể chấp nhậnmột số hoặc một chuỗi. Các số và chuỗi ngày cuối tuần giống hệt như trong tham số weekend của hàm WORKDAY.INTL.

    Hàm NETWORKDAYS.INTL có sẵn trong Excel 365 - 2010.

    Sử dụng NETWORKDAYS.INTL trong Excel - ví dụ về công thức

    Sử dụng danh sách ngày từ ví dụ trước, hãy tính số ngày làm việc giữa hai ngày với Chủ nhật là ngày cuối tuần duy nhất. Đối với điều này, bạn nhập số 11 vào đối số weekend của công thức NETWORKDAYS.INTL hoặc tạo một chuỗi gồm sáu số 0 và một số 1 ("0000001"):

    =NETWORKDAYS.INTL(B2, C2, 11, $A$2:$A$5)

    Hoặc

    =NETWORKDAYS.INTL(B2, C2, "0000001", $A$2:$A$5)

    Ảnh chụp màn hình sau chứng minh rằng cả hai công thức đều trả về kết quả hoàn toàn giống nhau.

    Cách đánh dấu ngày làm việc trong Excel

    Sử dụng các hàm WORKDAY và WORKDAY.INTL, bạn không chỉ có thể tính toán ngày làm việc trong trang tính Excel của mình mà còn có thể tô sáng chúng theo yêu cầu logic kinh doanh của bạn. Đối với điều này, bạn tạo quy tắc định dạng có điều kiện bằng công thức WORKDAY hoặc WORKDAY.INTL.

    Ví dụ: trong danh sách ngày ở cột B, hãy chỉ đánh dấu những ngày trong tương lai cách ngày hôm nay trong vòng 15 ngày làm việc , ngoại trừ hai ngày lễ trong các ô A2:A3. Công thức rõ ràng nhất mà tôi nghĩ đến như sau:

    =AND($B2>TODAY(), $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3))

    Phần đầu tiên của bài kiểm tra logic loại bỏ các ngày trong quá khứ, tức là bạn kiểm tra xem một ngày có bằng hoặc lớn hơn ngày hôm nay không : $B2>HÔM NAY(). Và trong phần thứ hai, bạn xác minhcho dù một ngày không quá 15 ngày trong tuần trong tương lai, ngoại trừ các ngày cuối tuần và các ngày lễ được chỉ định: $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3)

    Công thức có vẻ đúng, nhưng khi bạn tạo một quy tắc dựa trên nó, bạn sẽ nhận ra rằng nó đánh dấu sai ngày:

    Hãy thử tìm hiểu tại sao điều đó lại xảy ra. Vấn đề không nằm ở hàm WORKDAY, như ai đó có thể kết luận. Chức năng thì đúng, nhưng... nó thực sự làm gì? Nó trả về một ngày sau 15 ngày làm việc kể từ bây giờ, không bao gồm các ngày cuối tuần (thứ Bảy và Chủ Nhật) và ngày lễ trong các ô A2:A3.

    Được rồi, quy tắc dựa trên công thức này sẽ làm gì? Nó làm nổi bật TẤT CẢ các ngày bằng hoặc lớn hơn ngày hôm nay và nhỏ hơn ngày do hàm WORKDAY trả về. Bạn thấy không? Tất cả các ngày! Nếu bạn không muốn tô màu cho những ngày cuối tuần và ngày lễ, thì bạn cần nói rõ ràng với Excel là không nên tô màu. Vì vậy, chúng tôi đang thêm hai điều kiện nữa vào công thức của mình:

    • Hàm WEEKDAY để loại trừ các ngày cuối tuần: WEEKDAY($B2, 2)<6
    • Hàm COUNTIF để loại trừ các ngày lễ : COUNTIF($A$2:$A$3, $B2)=0

    Như minh họa trong ảnh chụp màn hình bên dưới, công thức cải tiến hoạt động hoàn hảo:

    =AND($B2>TODAY(), $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3), COUNTIF($A$2:$A$3, $B2)=0, WEEKDAY($B2, 2)<6)

    Như bạn thấy, các hàm WORKDAY và WORKDAY.INTL giúp tính toán ngày làm việc trong Excel nhanh chóng và dễ dàng. Tất nhiên, các công thức thực tế của bạn có thể phức tạp hơn, nhưng biết những điều cơ bản sẽ giúp ích rất nhiều, bởi vì bạn chỉ có thể nhớ

    Michael Brown là một người đam mê công nghệ chuyên dụng với niềm đam mê đơn giản hóa các quy trình phức tạp bằng các công cụ phần mềm. Với hơn một thập kỷ kinh nghiệm trong ngành công nghệ, anh ấy đã trau dồi kỹ năng của mình trong Microsoft Excel và Outlook, cũng như Google Trang tính và Tài liệu. Blog của Michael dành để chia sẻ kiến ​​thức và chuyên môn của anh ấy với những người khác, cung cấp các mẹo và hướng dẫn dễ thực hiện để cải thiện năng suất và hiệu quả. Cho dù bạn là một chuyên gia dày dạn kinh nghiệm hay người mới bắt đầu, blog của Michael đều cung cấp những hiểu biết có giá trị và lời khuyên thiết thực để tận dụng tối đa những công cụ phần mềm thiết yếu này.