Count Working Days With NETWORKDAYS and WORKDAY
By ExcelReady TeamUpdated 6 min read
The short answer
NETWORKDAYS counts the working days (Monday to Friday) between two dates, including both dates: =NETWORKDAYS(start_date, end_date, [holidays]). WORKDAY does the reverse and returns the date a number of working days away: =WORKDAY(start_date, days, [holidays]). Both skip weekends, and both skip any dates you list as holidays.
Key takeaways
- NETWORKDAYS counts Monday to Friday and includes both the start and end date, so one full week is 5.
- WORKDAY doesn't count the start date: one working day after a Friday is the next Monday.
- The optional holidays argument is a range of real dates; lock it with $ before filling down.
- A negative number of days in WORKDAY counts backwards, which is handy for prep or order-by dates.
- For other weekends, such as Friday and Saturday, use NETWORKDAYS.INTL and WORKDAY.INTL.
On this page+
NETWORKDAYS in Excel counts the working days between two dates, leaving out weekends and any holidays you list. WORKDAY answers the opposite question: what date is a number of working days away? Project plans, delivery promises, payroll and leave requests all use them. This guide works through both on one small project sheet.
How do NETWORKDAYS and WORKDAY differ?#
NETWORKDAYS returns a count of days. WORKDAY returns a date.
| Function | Syntax | You know | You get |
|---|---|---|---|
| NETWORKDAYS | =NETWORKDAYS(start_date, end_date, [holidays]) | Two dates | The number of working days |
| WORKDAY | =WORKDAY(start_date, days, [holidays]) | A start date and a number of days | The finish date |
A working day here means Monday to Friday. The square brackets mean holidays is optional: a range of dates to
skip as well. Both functions work in every current version of Excel on Windows, Mac and the web.
Why not just subtract the dates?#
Subtraction counts every day, weekends included. Here are four projects from 2025:
| Project | Start | End | =C2-B2 | =NETWORKDAYS(B2,C2) |
|---|---|---|---|---|
| Website refresh | Mon Jan 6 | Fri Jan 31 | 25 | 20 |
| Vendor review | Wed Jan 15 | Tue Feb 4 | 20 | 15 |
| Payroll audit | Mon Feb 3 | Fri Feb 21 | 18 | 15 |
| Training plan | Mon May 19 | Fri May 30 | 11 | 10 |
The Website refresh runs for four weeks, Monday to Friday. Subtraction gives 25, which counts weekends and leaves out the first day. NETWORKDAYS gives 20: four weeks of five working days. For plain day counts, see how to count the days between two dates.
How to use NETWORKDAYS in Excel#
NETWORKDAYS takes the start date, then the end date. It includes both days if they are working days, so a single Monday to Friday week gives 5, not 4.
=NETWORKDAYS(B2,C2)If the start date is after the end date, the answer is negative. If you get -20 where you expected 20, swap B2 and C2.
How to skip holidays#
List the holiday dates in a range, such as I2:I4, and add it as the third argument:
=NETWORKDAYS(B2,C2,$I$2:$I$4)With holidays on Jan 20, Feb 17 and May 26, 2025, the counts drop to 19, 14, 14 and 9. Each holiday is a Monday that falls inside at least one project. A holiday on a Saturday or Sunday changes nothing, because that day was already skipped.
The dollar signs lock the range so it stays on I2:I4 when you fill the formula down. Press F4 (Windows) or ⌘T
(Mac) on the range to add them. The holiday cells must hold real dates. Build them with DATE, like
=DATE(2025,1,20), if typed dates might be read differently on another computer: 1/2/2025 is January 2 in the US but
February 1 in the UK.
How to use WORKDAY to find a deadline#
WORKDAY starts from a date, moves a number of working days, and returns the date it lands on. It doesn't count the start date, so one working day after a Friday is the next Monday.
=WORKDAY(B2,E2,$I$2:$I$4)| Project | Start | Lead time (days) | Ready by |
|---|---|---|---|
| Website refresh | Mon Jan 6 | 10 | Tue Jan 21 |
| Vendor review | Wed Jan 15 | 8 | Tue Jan 28 |
| Payroll audit | Mon Feb 3 | 12 | Thu Feb 20 |
| Training plan | Mon May 19 | 6 | Wed May 28 |
Ten working days after Jan 6 would normally be Monday Jan 20, but that's a holiday, so WORKDAY moves to Tuesday Jan 21. The result is a date serial number; format the cell as a date to read it. Its display follows your regional settings.
How to count backwards#
A negative number of days counts back in time. Prep work that must start five working days before each project:
=WORKDAY(B2,-5,$I$2:$I$4)For the Website refresh, that's Monday Dec 30, 2024. Use the same idea for "order by" or "submit by" dates.
A useful trick: =WORKDAY(B2-1,1) returns B2 itself if it's a working day, or the next working day if it falls on a
weekend. It's a quick way to push weekend dates to Monday.
What if your weekend isn't Saturday and Sunday?#
Use NETWORKDAYS.INTL and WORKDAY.INTL. They add a weekend argument before the holidays:
=NETWORKDAYS.INTL(B2,C2,7,$I$2:$I$4)
=WORKDAY.INTL(B2,10,"0000011",$I$2:$I$4)| Weekend code | Days off |
|---|---|
| 1 (default) | Saturday and Sunday |
| 7 | Friday and Saturday |
| 11 | Sunday only |
| 17 | Saturday only |
"0000011" | A custom pattern: seven digits from Monday to Sunday, 1 = day off |
The text pattern lets you describe any working week. "0000011" is the normal Saturday and Sunday weekend, and
"0000111" is a four-day week with Friday off. Both .INTL functions need Excel 2010 or later.
What are the common mistakes?#
| Mistake | What happens | Fix |
|---|---|---|
| End date first in NETWORKDAYS | A negative count | Start date first |
| Holiday range not locked | Rows lower down miss holidays | $I$2:$I$4 |
| Holidays typed as text | Holidays are ignored or you get #VALUE! | Use real dates, for example DATE(...) |
| Expecting WORKDAY to count the start day | The deadline is one day later than you planned | Use one day fewer, or start the day before |
| Result shows as 45678 | It's a serial number | Apply a date format |
To check which day of the week a date falls on, use WEEKDAY. See how to find weekends and day names with WEEKDAY. For building dates from parts, see DATE, YEAR, MONTH and DAY in Excel. Working days also matter for HR questions like notice periods; see how to calculate age or years of service for the tenure side.
Practise it#
Try the holiday exercise on this page, then practise NETWORKDAYS and WORKDAY in a live spreadsheet. You'll count project days, add a locked holiday list, find ready-by dates and count backwards to prep dates.
Try it yourself
This is a live spreadsheet. Type the formula in the green cell and press Enter.
The office is closed on the holidays in F2:F4. In D2, count the working days for the Website refresh project, from the start in B2 to the end in C2, skipping weekends and holidays. Use NETWORKDAYS with the holiday range locked as $F$2:$F$4.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Workdays | Holidays | |||||
| 2 | |||||||
| 3 | |||||||
| 4 | |||||||
| 5 | |||||||
| 6 | |||||||
| 7 | |||||||
| 8 |
Tip: NETWORKDAYS takes the start date, the end date, then the holiday range. Add $ signs so the range stays put.
Practise this in a lesson
Frequently asked questions
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.
How do I exclude holidays in NETWORKDAYS?
List the holiday dates in cells and add the range as the third argument: =NETWORKDAYS(B2,C2,$I$2:$I$4). Holidays that fall on a weekend don't change the count.
What is the difference between NETWORKDAYS and WORKDAY?
NETWORKDAYS counts the working days between two dates you know. WORKDAY starts from one date and returns the date a number of working days later or earlier.
How do I count working days with a Friday and Saturday weekend?
Use NETWORKDAYS.INTL with weekend code 7: =NETWORKDAYS.INTL(B2,C2,7). You can also use a seven-character code like "0000110", where each 1 marks a day off, starting with Monday.
Why does WORKDAY return a number like 45678?
WORKDAY returns a date serial number. Format the cell as a date with Ctrl+Shift+# or from the Number Format list on the Home tab.