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.
=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(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(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.
=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(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(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(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(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.
=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.
=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
List all Excel Formulas.