Count Working Days Between Dates in Excel: NETWORKDAYS Includes Eligible Endpoints
A Monday-through-Friday interval usually contains five eligible dates, even though subtracting the two dates gives four elapsed days. That difference matters when you report how many working dates a period covers. This guide lists the counted dates explicitly and separates an inclusive count from a rule that excludes the start.
Build real dates and a documented closure list
The functions in this guide are available in Excel 2016 and later desktop editions. In a new worksheet enter =DATE(2026,9,4) in A2, =DATE(2026,9,11) in B2, =DATE(2026,9,7) in H2, and =DATE(2026,9,10) in H3. Format those cells as yyyy-mm-dd. Put start_date, end_date, and working_dates in A1:C1.
September 7 and September 10 are invented workplace closures for the exercise. The formula does not supply a jurisdiction’s holiday calendar. In a real report, identify the relevant workplace schedule and the owner of the exclusion list. A date can be a normal weekday in the calendar while being excluded by your organization’s schedule.
=NETWORKDAYS(A2,B2,$H$2:$H$3)List the dates that contribute to the inclusive count
The interval starts on Friday September 4. That eligible date contributes one. September 5 and 6 are the weekend; September 7 is a closure. September 8 and 9 contribute two more dates. September 10 is excluded and Friday September 11 contributes the fourth. The expected result in C2 is therefore 4.
The two eligible endpoint dates both contribute in this example. That is why a count of covered working dates differs from a deadline offset beginning after a starting point. Keep the report label explicit: Working dates covered communicates the intended quantity more clearly than Duration when readers might expect elapsed hours or date subtraction.
Exclude the start only when it would have counted
Some reports count eligible dates after receipt and through completion. For that rule, subtract the start date’s own eligibility from the inclusive count. The formula below first rejects reversed input, then removes either one or zero according to whether A2 itself is an eligible working date under the same closure list.
For the main example this gives 3 because September 4 was counted. If you begin on the September 7 closure instead, it removes zero. Simply subtracting one from every inclusive count would incorrectly reduce closure-start and weekend-start intervals. The same-day cases are useful checks: one eligible date becomes zero under an exclusive-start policy, while an excluded date remains zero.
=IF(B2<A2,"Check date order",NETWORKDAYS(A2,B2,$H$2:$H$3)-NETWORKDAYS(A2,A2,$H$2:$H$3))Set a Friday/Saturday weekend with NETWORKDAYS.INTL
For the alternate schedule, enter the formula below in E2 using the same start, end, and closure cells. The seven-character pattern is written Monday through Sunday, with 1 indicating a nonworking weekday. In 0000110 the Friday and Saturday positions are excluded. Keep the string quoted so its leading zeros remain part of the pattern.
Under this calendar September 4 and 5 are weekend dates. Sunday September 6 is eligible, September 7 is a closure, September 8 and 9 count, September 10 is a closure, and September 11 is a weekend date. The inclusive result is 3. Excluding the start still leaves 3 because September 4 contributed nothing under this calendar.
=NETWORKDAYS.INTL(A2,B2,"0000110",$H$2:$H$3)Test same dates, closure endpoints, and reversed input
Run the cases in the expected-results download. September 8 to September 8 counts one eligible date. September 7 to itself counts zero because it is a closure. September 7 through September 10 counts September 8 and 9 only. The September 5–6 weekend contributes zero. These small intervals make the endpoint rule directly observable.
This report treats an end before the start as an input issue, rather than presenting a signed duration. Apply the same guard to the inclusive formula when adapting the case table: =IF(B2<A2,"Check date order",NETWORKDAYS(A2,B2,$H$2:$H$3)). A different workflow may intentionally report signed intervals, but that is a separate documented choice, not something to infer from a negative result.
To run all seven downloaded cases, use a separate sheet named Cases. Import networkdays-cases.csv into A1:D8: A is case, B is start_date, C is end_date, and D is weekend_pattern. Set D to Text before import, and build B/C as real dates using the DATE constructors below if needed. This layout is different from the one-case A2/B2 walkthrough. Enter the two numeric closure dates in H2:H3, then fill the E2/F2 formulas through row 8.
Keep each pattern as its original seven-character Text value. If 0000011 becomes the number 11, Excel interprets a different weekend code: Sunday only. In the main case that counts 5 instead of 4. Check ISTEXT(D2) and LEN(D2)=7, then compare with the source pattern; those checks alone do not validate an arbitrary mask. Re-import a damaged pattern from the known source instead of guessing which zeros to add.
| Cases row | B: start date | C: end date | D: Text pattern |
|---|---|---|---|
| 2 | =DATE(2026,9,4) | =DATE(2026,9,11) | 0000011 |
| 3 | =DATE(2026,9,4) | =DATE(2026,9,11) | 0000110 |
| 4 | =DATE(2026,9,8) | =DATE(2026,9,8) | 0000011 |
| 5 | =DATE(2026,9,7) | =DATE(2026,9,7) | 0000011 |
| 6 | =DATE(2026,9,7) | =DATE(2026,9,10) | 0000011 |
| 7 | =DATE(2026,9,5) | =DATE(2026,9,6) | 0000011 |
| 8 | =DATE(2026,9,11) | =DATE(2026,9,4) | 0000011 |
E2: =IF(C2<B2,"Check date order",NETWORKDAYS.INTL(B2,C2,D2,$H$2:$H$3))
F2: =IF(C2<B2,"Check date order",NETWORKDAYS.INTL(B2,C2,D2,$H$2:$H$3)-NETWORKDAYS.INTL(B2,B2,D2,$H$2:$H$3))Keep working dates separate from working hours and deadlines
The count assigns whole-date eligibility. It does not consider a morning arrival, an afternoon departure, half-day shifts, or an organization’s daily start time. If your source has timestamps, define which calendar date and time zone each event belongs to before using a date-only calculation. Do not label four counted dates as thirty-two worked hours without an independent work-hours rule.
For a future date a fixed number of business days after a start, use an endpoint calculation such as WORKDAY rather than a between-dates count. These seven synthetic cases were checked by independent date enumeration and native Excel calculation in version 16.0, build 5569.0, on September 13, 2026. The test supplies real dates, the stated closures and explicit Text weekend strings. Regional holiday selection and the type of your own imported cells still need review; ribbon steps were not exercised.
Common questions
Does NETWORKDAYS include the start and end dates?
An eligible endpoint contributes to the inclusive working-date count. A weekend or listed closure contributes zero. The main fixture counts both September 4 and September 11.
Can I always subtract 1 to exclude the start?
No. Subtract the start date’s eligibility under the same calendar. A weekend or closure start was never counted and must not remove an extra date.
Does NETWORKDAYS know public holidays automatically?
No. Supply the applicable exclusion list yourself. This guide’s closure dates are synthetic and must not be reused as a real regional holiday calendar.
Sources & method
Examples and diagrams use synthetic data. Application instructions follow the linked documentation; available menus and options can vary. Our sample checks do not establish behavior in every Excel or Google Sheets version. Read our AI-assisted editorial method.