Quick answer
Use Excel NETWORKDAYS to count working days between dates and exclude holidays.
=NETWORKDAYS(start_date,end_date,holidays)
When to use this formula
Use it when you need a repeatable spreadsheet calculation for invoice due dates, project plans, payroll checks, support SLAs, or other weekday-based deadlines. It is especially useful when you have a list of company shutdown days or public holidays that you want to exclude from the count.
How the syntax works
The NETWORKDAYS function takes three arguments:
- start_date — the first date in your range. If this is a working day, it is included in the count.
- end_date — the final date. This date is also included if it falls on a weekday.
- holidays — optional. A range of cells listing dates to exclude, such as a bank holiday list. If omitted, only weekends are skipped.
Worked example: July 2026
Suppose you need to count working days in July 2026 for a monthly payroll run. You track UK bank holidays in cells D2:D10. The formula is:
=NETWORKDAYS(DATE(2026,7,1), DATE(2026,7,31), D2:D10)
| Component | Value | Notes |
|---|---|---|
| Start date | 1 July 2026 | Wednesday |
| End date | 31 July 2026 | Friday |
| Total calendar days | 31 | Full month |
| Weekend days | 8 | 4 Saturdays + 4 Sundays |
| Bank holidays in range | 0 | None in July (UK) |
| Result: working days | 23 | 31 − 8 |
What about the holidays argument?
The third argument is where NETWORKDAYS becomes much more useful than manual counting. Create a separate sheet or range called Holidays and list every public holiday and company closure date your organisation observes. When you reference that range in the formula, each matching date is excluded from the working day count.
For example, May 2026 has two UK bank holidays. Without the holidays argument, NETWORKDAYS returns 21 working days. With the holidays argument referencing those two dates, the result drops to 19 — which matters for payroll, project deadlines, and SLAs.
NETWORKDAYS vs NETWORKDAYS.INTL
If your working week is not Monday–Friday — for example, a Sunday–Thursday pattern common in parts of the Middle East — use NETWORKDAYS.INTL instead. It accepts a weekend parameter that lets you define which days are non-working days. The regular NETWORKDAYS function always assumes Saturday and Sunday are the weekend.
Common checks
- Make sure your date cells are real dates, not text. Dates stored as text will cause a #VALUE! error.
- Keep public holidays in a separate list or named range so you can reuse it across multiple formulas.
- Confirm whether the start date should count. NETWORKDAYS includes both start and end dates if they fall on weekdays.
- If your result seems off by one, check whether the start date should be included or excluded per your policy.
Need a quick answer without spreadsheet setup?
FAQs
What does NETWORKDAYS do?
NETWORKDAYS counts weekdays between two dates and can exclude a list of holiday dates.
Does NETWORKDAYS include the start date?
Yes, if the start date is a working day it is included in the count.
Can I use holidays?
Yes. Add a holiday range as the third argument.