Calculating the number of days between two dates is easy — just subtract them. But when you need business days (excluding weekends) or business days excluding company holidays, you need NETWORKDAYS. This function is essential for project timelines, SLA tracking, payment terms, and employee leave calculations.
The Formulas
Business days (excluding weekends only)
=NETWORKDAYS(start_date, end_date)
Business days (excluding weekends AND holidays)
=NETWORKDAYS(start_date, end_date, holidays)
holidays = a range containing your company’s holiday dates.
The Scenario
You’re tracking project deadlines and need to know how many working days remain for each task:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Task | Start Date | Due Date | Business Days |
| 2 | Design Review | 3/3/2025 | 3/14/2025 | 10 |
| 3 | Client Feedback | 3/14/2025 | 3/21/2025 | 6 |
| 4 | Development | 3/17/2025 | 4/4/2025 | 15 |
The formula in D2:
=NETWORKDAYS(B2, C2)
March 3 to March 14, 2025 = 10 business days (excludes the two weekends in between). Note: NETWORKDAYS counts both the start and end dates.
Adding a Holiday List
Create a list of company holidays on a separate sheet or in a named range:
| A | B | |
|---|---|---|
| 1 | Holiday | Date |
| 2 | New Year’s Day | 1/1/2025 |
| 3 | Memorial Day | 5/26/2025 |
| 4 | Independence Day | 7/4/2025 |
| 5 | Labor Day | 9/1/2025 |
| 6 | Thanksgiving | 11/27/2025 |
| 7 | Christmas | 12/25/2025 |
Then reference the holiday dates in NETWORKDAYS:
=NETWORKDAYS(B2, C2, Holidays!B2:B7)
Excludes both weekends AND any dates in the holiday list. Name the range “CompanyHolidays” for cleaner formulas.
Named ranges
Select your holiday dates, go to Formulas → Define Name, and name it “CompanyHolidays”. Then your formula becomes =NETWORKDAYS(B2, C2, CompanyHolidays) — much more readable.
Calculating a Due Date from Business Days
Need to find the date that is 15 business days from today? Use WORKDAY:
=WORKDAY(start_date, number_of_days, [holidays])
Example: =WORKDAY(TODAY(), 15, CompanyHolidays) — returns the date that is 15 business days from today, skipping weekends and holidays.
Custom Weekends with NETWORKDAYS.INTL
Some businesses work Saturday but not Sunday, or have Friday-Saturday weekends. NETWORKDAYS.INTL lets you define which days are weekends:
=NETWORKDAYS.INTL(B2, C2, "0000011", CompanyHolidays)
The 7-character string represents Mon-Sun. 0 = workday, 1 = weekend. “0000011” means Saturday and Sunday are weekends (default). “0000010” means only Saturday is a weekend.
Common mistake
NETWORKDAYS counts both the start and end dates as working days. If a task starts Monday and ends the same Monday, NETWORKDAYS returns 1, not 0. Account for this when calculating durations vs. deadlines.
When Formulas Aren’t Enough
NETWORKDAYS handles simple date math, but business scheduling often gets more complex:
- Cascading deadlines — when one task’s completion triggers the next task’s start date
- Resource-aware scheduling — accounting for team member availability, not just calendar days
- SLA tracking with escalation — automatically flagging items approaching or past their business-day deadline
- Multi-timezone projects — business days differ when teams span US and international offices
- Dynamic holiday management — holidays that change each year (Easter, Thanksgiving) need automatic updates
A custom VBA scheduling tool manages cascading deadlines, resource calendars, SLA monitoring, and automatic notifications — keeping every project on track.
“He made a novice like me feel very comfortable with the process. Project delivered quickly and to specification. Excellent communication.”
Stephen W. · Freelancer
Need Automated Scheduling and Deadline Tracking?
Tell us about your project workflow and we’ll build a tool that manages it.
Start a Project