NETWORKDAYS vs WORKDAY in Excel
By ExcelReady TeamUpdated 7 min read
The short answer
NETWORKDAYS answers "how many working days between these two dates?" and returns a number. WORKDAY answers "which date is N working days from this one?" and returns a date. Both skip Saturdays, Sundays and an optional holiday list. NETWORKDAYS counts the start and end days; WORKDAY does not count the start day.
Key takeaways
- NETWORKDAYS(start, end, [holidays]) returns a count of working days.
- WORKDAY(start, days, [holidays]) returns a date, so format the cell as a date.
- NETWORKDAYS includes both the start and end dates; WORKDAY starts counting the day after the start.
- Both skip Saturday and Sunday. For other weekends, use NETWORKDAYS.INTL or WORKDAY.INTL.
- Lock the holiday range with $ signs before you fill the formula down.
On this page+
NETWORKDAYS vs WORKDAY is the difference between counting and moving. NETWORKDAYS counts how many working days fall between two dates and returns a number; WORKDAY starts from a date, moves a number of working days and returns the date you land on. Both skip weekends and any holidays you list. This guide is for anyone who plans projects, deliveries or leave and needs to get business-day maths right.
NETWORKDAYS vs WORKDAY at a glance#
The two functions are opposites: one takes two dates and gives a count, the other takes a count and gives a date.
| Feature | NETWORKDAYS | WORKDAY |
|---|---|---|
| Question it answers | How many working days between two dates? | Which date is N working days away? |
| Syntax | =NETWORKDAYS(start_date, end_date, [holidays]) | =WORKDAY(start_date, days, [holidays]) |
| Returns | A number | A date (serial number; format as a date) |
| Counts the start date | Yes, if it's a working day | No, counting starts the day after |
| Weekend | Saturday and Sunday | Saturday and Sunday |
| Holidays | Optional range of dates | Optional range of dates |
| Going backwards | Start later than end gives a negative count | Negative days moves back |
| Custom weekends | NETWORKDAYS.INTL | WORKDAY.INTL |
How NETWORKDAYS works#
NETWORKDAYS counts Monday-to-Friday days from the start date to the end date, including both ends:
=NETWORKDAYS(start_date, end_date, [holidays])start_dateandend_date: real Excel dates, not text.holidays: an optional range of dates to skip, such as public holidays or office closures. Holidays that fall on a weekend are ignored, because those days are already skipped.
Because both ends count, a Monday-to-Friday week returns 5, not 4. If the start date is after the end date, the result is negative. Plain subtraction counts every calendar day instead, which our comparison of DAYS vs DATEDIF explains.
How WORKDAY works#
WORKDAY moves forward (or back) a number of working days from a start date and returns the date it lands on:
=WORKDAY(start_date, days, [holidays])start_date: where you start. It is not counted.days: how many working days to move. Use a negative number to go back.holidays: the same optional list of dates to skip.
One working day after a Friday is the next Monday. If the start date is a Saturday, one working day later is Monday too. The result is a date serial number, so format the cell as a date with Home > Number Format > Short Date (or press Ctrl+Shift+# on Windows).
The same project, side by side#
Here is a small project plan for January 2025. The office is closed on 1 January and Monday 20 January.
| A | B | C | F | ||
|---|---|---|---|---|---|
| 1 | Task | Start | End | Holidays | |
| 2 | Draft report | Mon 6 Jan 2025 | Fri 31 Jan 2025 | 1 Jan 2025 | |
| 3 | 20 Jan 2025 |
| Question | Formula | Result |
|---|---|---|
| Calendar days, start to end | =C2-B2 | 25 |
| Working days, no holidays | =NETWORKDAYS(B2,C2) | 20 |
| Working days, skipping holidays | =NETWORKDAYS(B2,C2,$F$2:$F$3) | 19 |
| 10 working days after the start | =WORKDAY(B2,10) | Mon 20 Jan 2025 |
| 10 working days, skipping holidays | =WORKDAY(B2,10,$F$2:$F$3) | Tue 21 Jan 2025 |
| 5 working days before the start | =WORKDAY(B2,-5) | Mon 30 Dec 2024 |
Two things stand out. First, the 20 January holiday pushes the WORKDAY result one day later, to the 21st. Second, the 1 January holiday doesn't change NETWORKDAYS here, because it is outside the 6–31 January range.
The off-by-one difference#
The two functions count differently, and this catches people out. From Monday 6 January:
=WORKDAY(B2,10) → Mon 20 Jan 2025
=NETWORKDAYS(B2,DATE(2025,1,20)) → 11WORKDAY moved 10 working days and didn't count the start. NETWORKDAYS from the 6th to the 20th counts the start day too, so it says 11. If a task "takes 10 working days including the start day", the end date is =WORKDAY(B2,10-1).
Working days left until a deadline#
A common report column is "working days remaining". Combine NETWORKDAYS with TODAY:
=NETWORKDAYS(TODAY(),C2,$F$2:$F$3)Because NETWORKDAYS counts both ends, today is included: on the deadline day itself the result is 1, not 0. If your team counts only the days after today, subtract 1. Once the deadline has passed, the result turns negative, which you can flag with a rule such as =IF(C2<TODAY(),"Overdue",NETWORKDAYS(TODAY(),C2,$F$2:$F$3)). TODAY recalculates every time the workbook opens, so the countdown stays current without any edits.
When to use NETWORKDAYS#
Use NETWORKDAYS when you have two dates and need a count. It is the better choice when:
- You measure how long something took, such as days to close a support ticket.
- You count working days in a month for payroll or capacity planning.
- You check a service level, such as
=IF(NETWORKDAYS(B2,C2)>5,"Late","On time"). - You prorate a cost by working days used out of working days available.
When to use WORKDAY#
Use WORKDAY when you have a start date and a number of days and need the resulting date. It is the better choice when:
- You set a due date, such as an invoice payable in 15 working days.
- You plan a project schedule from lead times.
- You find a start date by counting back, such as prep work that must begin 5 working days before a launch.
- You need the next working day after a weekend date:
=WORKDAY(B2,1).
Project sheets often look up each task's lead time or owner from another table first. Our comparisons of VLOOKUP vs XLOOKUP and VLOOKUP vs INDEX MATCH cover the options.
Common mistakes with NETWORKDAYS and WORKDAY#
These mistakes cause most wrong business-day results:
- Mixing up the second argument. NETWORKDAYS wants an end date; WORKDAY wants a number of days. Passing a date to WORKDAY moves tens of thousands of days and gives a nonsense date or an error.
- Leaving WORKDAY's result unformatted. It shows as a number like 45677 until you format it as a date.
- Forgetting the off-by-one difference. NETWORKDAYS counts the start date; WORKDAY doesn't.
- Not locking the holiday range. Without
$F$2:$F$3, the range slides down as you fill and later rows miss holidays. - Holidays typed as text. "20 Jan" typed in a text-formatted cell isn't a date. Use real dates, for example
=DATE(2025,1,20). - Assuming every country has a Saturday–Sunday weekend. Use the .INTL versions when the weekend falls on other days.
Getting each argument's meaning right is the same skill that matters in our comparison of MATCH types 0, 1 and -1, where one number changes the whole result.
What about NETWORKDAYS.INTL and WORKDAY.INTL?#
The .INTL versions work the same way but add a weekend argument, so you can choose which days count as the weekend. For example, weekend code 7 means Friday and Saturday, and 11 means Sunday only. You can also pass a seven-character string such as "0000011", where each 1 marks a weekend day from Monday to Sunday. They are available in Excel 2010 and later. Our guide on counting working days with NETWORKDAYS and WORKDAY covers the standard versions in more depth.
Our recommendation#
Use NETWORKDAYS when you have two dates and want a count, and WORKDAY when you have a date and a count and want a date. Keep one holiday list on the sheet, lock it with $ signs, and pass it to both functions so they always agree. When a plan says "10 working days", decide once whether the start day counts, and adjust WORKDAY's days by 1 if it does.
In short: NETWORKDAYS counts working days; WORKDAY finds a working date.
Practise it#
Try the WORKDAY exercise on this page, then open the NETWORKDAYS and WORKDAY lesson. It starts with plain subtraction, switches to NETWORKDAYS with a locked holiday list, then uses WORKDAY to find ready dates and to count 5 working days backwards.
Try it yourself
This is a live spreadsheet. Type the formula in the green cell and press Enter.
Each task needs the working days in C2 after it starts. In D2, use WORKDAY to find the date it's ready: start from B2, move C2 working days, and skip the holidays in $F$2:$F$3.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Ready on | Holidays | |||||
| 2 | |||||||
| 3 | |||||||
| 4 | |||||||
| 5 | |||||||
| 6 | |||||||
| 7 |
Tip: WORKDAY takes the start date, the number of working days, then the holiday range: =WORKDAY(B2,C2,$F$2:$F$3).
Practise this in a lesson
Frequently asked questions
What is the difference between NETWORKDAYS and WORKDAY?
NETWORKDAYS takes two dates and returns how many working days fall between them. WORKDAY takes a date and a number of working days and returns the date you land on. One counts, the other moves.
Does NETWORKDAYS include the start date?
Yes. NETWORKDAYS counts both the start and the end date if they are working days, so Monday to Friday of the same week is 5.
Why does WORKDAY show a number like 45677?
WORKDAY returns a date serial number. Format the cell as a date (Home > Number Format > Short Date) to see it as a date such as 20 Jan 2025.
How do I count working days with a Friday and Saturday weekend?
Use NETWORKDAYS.INTL or WORKDAY.INTL, which take a weekend argument. For example, weekend code 7 means Friday and Saturday.
Can WORKDAY count backwards?
Yes. Use a negative number of days. =WORKDAY(B2,-5) returns the date 5 working days before the date in B2.