ZetCode

Excel WORKDAY and NETWORKDAYS Functions

last modified October 5, 2026

The WORKDAY and NETWORKDAYS functions are essential for date calculations in Excel. They calculate working days while excluding weekends and, optionally, holidays. This tutorial provides a comprehensive guide to using these functions with detailed examples. You'll learn basic syntax, practical applications, and advanced techniques.

Function Basics

WORKDAY calculates a date that is a given number of workdays before or after a start date. NETWORKDAYS counts the workdays between two dates. Both exclude weekends and can optionally exclude holidays.

Function Description Syntax
WORKDAY Returns the date after a specified number of workdays =WORKDAY(start_date, days, [holidays])
NETWORKDAYS Counts the workdays between two dates =NETWORKDAYS(start_date, end_date, [holidays])

The core difference is direction. WORKDAY moves forward or backward in time and returns a date, while NETWORKDAYS measures the distance between two dates and returns a count. Both skip Saturday and Sunday by default.

Arguments

The two functions share the same holiday argument, but their other arguments differ. The table below lists each argument and what it means.

Argument Required Meaning
start_date Yes The starting point. For WORKDAY it is where the count begins and is not itself counted. For NETWORKDAYS it is the first date included in the count.
days Yes (WORKDAY) The number of workdays to add. A positive value moves forward, a negative value moves backward. Non-integer values are truncated.
end_date Yes (NETWORKDAYS) The last date included in the count. NETWORKDAYS includes both the start and end dates.
holidays No A range or array constant of dates to treat as non-working. Holidays that fall on a weekend are ignored because the day is already excluded.

Always supply dates with the DATE function, a cell reference, or another date formula. Dates typed as text can be read differently depending on your regional settings and may return a #VALUE! error.

How Weekends and Holidays Are Handled

By default a weekend is Saturday and Sunday. WORKDAY does not count the start date itself; it begins on the next working day. For example, =WORKDAY(DATE(2023,1,6), 1), where January 6, 2023 is a Friday, returns Monday January 9, 2023, because the weekend is skipped.

NETWORKDAYS behaves differently: it counts both endpoints when they are working days. A range from a single Monday to itself therefore returns 1: =NETWORKDAYS(DATE(2023,1,2), DATE(2023,1,2)). A Saturday-to-Sunday range returns 0.

Holidays are subtracted only when they land on a working day. A holiday that falls on a Saturday or Sunday has no effect on the result, because that day is already excluded as a weekend. If the same date is listed twice, Excel counts it only once.

Basic WORKDAY Example

This example calculates a due date 10 workdays after April 1, 2025.

Basic WORKDAY formula
=WORKDAY(DATE(2025,4,1), 10)

April 1, 2025 is a Tuesday. Counting only working days gives April 15, 2025, a Tuesday, skipping the weekends of April 5-6 and April 12-13. The start date is not counted.

WORKDAY with Negative Days

A negative days value walks backward in time, which is useful for finding a deadline that occurred before a given date.

WORKDAY with a negative offset
=WORKDAY(DATE(2025,4,15), -10)

Starting from April 15, 2025, this returns April 1, 2025. The function steps backward over the same two weekends in reverse, excluding holidays if any are supplied.

WORKDAY with Holidays

This example adds a holiday list to exclude specific dates from the calculation.

A B
Start Date 2025-04-01
Holiday 1 2025-04-07
Holiday 2 2025-04-14
Result =WORKDAY(B1, 10, B2:B3)

The table shows a start date and two holidays, both of which fall on Mondays. The WORKDAY formula calculates 10 workdays from the start date, excluding both weekends and the listed holidays.

WORKDAY with holidays
=WORKDAY(B1, 10, B2:B3)

Without holidays the result was April 15, 2025. Each holiday pushes the result back by one working day, so the formula returns April 17, 2025.

Basic NETWORKDAYS Example

This example counts the workdays in April 2025, which is useful for estimating project duration.

A B
Start Date 2025-04-01
End Date 2025-04-30
Workdays =NETWORKDAYS(B1, B2)

The table shows a date range in April 2025. The NETWORKDAYS formula counts every working day between the dates, automatically excluding weekends.

Basic NETWORKDAYS formula
=NETWORKDAYS(B1, B2)

This formula returns 22 workdays in April 2025, which is 30 total days minus 8 weekend days. NETWORKDAYS includes both the start and end dates in the count when they are workdays.

NETWORKDAYS with Holidays

This example extends the previous one by excluding both weekends and holidays.

A B
Start Date 2025-04-01
End Date 2025-04-30
Holiday 1 2025-04-07
Holiday 2 2025-04-14
Workdays =NETWORKDAYS(B1, B2, B3:B4)

The table adds a holiday list to the previous example. The NETWORKDAYS formula now removes these dates from the workday count along with the weekends.

NETWORKDAYS with holidays
=NETWORKDAYS(B1, B2, B3:B4)

This formula returns 20 workdays, which is the original 22 minus the 2 holidays. Both holidays fell on Mondays (April 7 and April 14, 2025), so each one removed a working day.

WORKDAY.INTL and NETWORKDAYS.INTL

The INTL variants accept an extra weekend argument, so you can define a non-standard work week. The weekend can be given as a number code or as a seven-character string of 0 and 1 characters. The string starts with Monday, and a 1 marks a weekend day.

Weekend code Days treated as weekend
1 or omitted Saturday, Sunday
2 Sunday, Monday
4 Tuesday, Wednesday
7 Friday, Saturday
11 Sunday only
16 Friday only

This example uses a Tuesday-Wednesday weekend, which corresponds to code 4 or the string "0110000".

WORKDAY.INTL with a custom weekend
=WORKDAY.INTL(DATE(2025,4,1), 10, "0110000")

The string "0110000" marks Tuesday and Wednesday as weekend days (Monday = 0, Tuesday = 1, Wednesday = 1, and so on). Counting 10 workdays from April 1, 2025 under this calendar returns April 14, 2025. The same pattern can be written with the numeric code instead.

WORKDAY.INTL using a code
=WORKDAY.INTL(DATE(2025,4,1), 10, 4)

NETWORKDAYS.INTL takes the same weekend argument. Counting from April 1 to April 30, 2025 with the "0110000" pattern returns 20 working days.

NETWORKDAYS.INTL with a custom weekend
=NETWORKDAYS.INTL(DATE(2025,4,1), DATE(2025,4,30), "0110000")

Project Scheduling Example

WORKDAY and NETWORKDAYS work well together when planning a project. The table below stores a project start date, a duration in working days, and a company holiday.

A B
Project Start 2025-03-03
Duration (workdays) 15
Company Holiday 2025-03-17
Project End =WORKDAY(B1, B2, B3)

Starting on Monday March 3, 2025, the project needs 15 working days. The holiday on March 17 adds one day, so WORKDAY returns March 25, 2025.

Project end date
=WORKDAY(B1, B2, B3)

To check how many working days have elapsed, pass the same start date and a cut-off date to NETWORKDAYS. For March 3 to March 21, 2025 the range holds 15 weekdays; excluding the March 17 holiday leaves 14 working days.

Elapsed working days
=NETWORKDAYS(B1, DATE(2025,3,21), B3)

Combining the two functions lets you compute an end date from a duration and then measure the actual number of working days in any sub-period.

WORKDAY vs NETWORKDAYS

Feature WORKDAY NETWORKDAYS
Result A date (serial number) A count of days
Inputs start_date, days, [holidays] start_date, end_date, [holidays]
Start date counted? No Yes
Endpoints Returns the last working day reached Includes both start and end
Negative values Allowed via negative days Not applicable
Custom weekend WORKDAY.INTL NETWORKDAYS.INTL

Errors and Troubleshooting

Cause Symptom Fix
A date is supplied as text #VALUE! error Use DATE, a cell reference, or DATEVALUE to build the date
Days pushes the result outside the supported range #NUM! error Reduce the days value so the result stays within the valid range
Holiday list contains invalid dates #VALUE! error Clean the holiday range so every entry is a real date
Result shows a number such as 45761 Serial number instead of a date Apply a date number format with Ctrl+1
Holiday falls on a weekend Count is unchanged Expected behavior; the day is already excluded
NETWORKDAYS returns 0 Range contains no working days Check the endpoints; a weekend-only range has no working days
Wrong weekend for a non-standard week Count is off by whole weeks Use the .INTL variant with the correct weekend code
days is negative and a future date was expected Result lies in the past Use the absolute value or change the sign of days

The WORKDAY and NETWORKDAYS functions are powerful tools for business date calculations. They exclude weekends automatically and can incorporate holiday schedules, while the INTL versions adapt the working week to any schedule. Remember the key difference: WORKDAY returns a date by moving a number of working days, and NETWORKDAYS returns a count between two dates. Master these functions and your date-based calculations in Excel become predictable and dependable.

Author

My name is Jan Bodnar, and I am a passionate programmer with extensive programming experience. I have been writing programming articles since 2007. To date, I have authored over 1,400 articles and 8 e-books. I possess more than ten years of experience in teaching programming.

List all Excel Formulas.