NETWORKDAYS.INTL in Excel: Count Custom Workweeks and Holidays
Count Excel workdays with weekend codes or Monday-first masks, verify inclusive and reversed intervals, and keep holiday inputs explicit.
Verification status: See the evidence and test scope described in this guide. How formula examples are checked
Quick answer: NETWORKDAYS.INTL counts working dates using a customizable weekly calendar and optional holidays. Its seven-character mask starts on Monday: 1 excludes a day and 0 permits it. The standard omitted weekend is Saturday/Sunday.
Availability and version history
- Introduced: the Microsoft function catalogue marks NETWORKDAYS.INTL as an Excel 2010 addition; an exact first build or preview date is not established here.
- Availability: official help lists Excel for Microsoft 365, Excel for Microsoft 365 for Mac, Excel 2024, Excel 2024 for Mac, Excel 2021, Excel 2021 for Mac, Excel 2019, Excel 2016, Excel Web App.
- Checked: October 14, 2026; official NETWORKDAYS.INTL reference. Documentation and independently modeled examples; no native Excel execution or broader platform certification.
Syntax and defaults
=NETWORKDAYS.INTL(start_date, end_date, [weekend], [holidays])
The start and end dates are required. Weekend is a documented numeric code or a quoted seven-character string. Holidays is a range of actual dates or an array of serial dates; its order can be arbitrary. The result is a count, so format it as Number.
Do not pass a holiday range as the third argument and expect it to be recognized as holidays. That position is the weekend rule. Use an explicit weekend value before the fourth argument when supplying both.
Numeric weekend codes
| Code | Excluded weekday or weekdays |
|---|---|
| 1 or omitted | Saturday, Sunday |
| 2 | Sunday, Monday |
| 3 | Monday, Tuesday |
| 4 | Tuesday, Wednesday |
| 5 | Wednesday, Thursday |
| 6 | Thursday, Friday |
| 7 | Friday, Saturday |
| 11 | Sunday only |
| 12 | Monday only |
| 13 | Tuesday only |
| 14 | Wednesday only |
| 15 | Thursday only |
| 16 | Friday only |
| 17 | Saturday only |
The code numbers are not counts of days off. For example, 11 means only Sunday, not eleven nonworking days.
Example 1: compare two full-week calendars
=NETWORKDAYS.INTL(DATE(2026,6,1),DATE(2026,6,7))
=NETWORKDAYS.INTL(DATE(2026,6,1),DATE(2026,6,7),11)
Expected results are 5 and 6. June 1–7 runs Monday through Sunday. The default excludes Saturday and Sunday; code 11 permits Saturday and excludes Sunday only.
Under code 7, Friday and Saturday are excluded, giving five working dates: Monday, Tuesday, Wednesday, Thursday and Sunday. The same total can describe a different set of dates, so check the selected dates as well as the count.
Example 2: a mask makes the chosen dates visible
=NETWORKDAYS.INTL(DATE(2026,6,1),DATE(2026,6,7),"0000110")
Expected result: 5, using the Friday/Saturday exclusion just described. The positions are Monday through Sunday, so the final zero allows Sunday.
For a Monday/Wednesday/Friday-only schedule, use “0101011”. The same interval then has expected count 3, from June 1, June 3 and June 5. Keep leading zeros by quoting the mask; a numeric value is interpreted as a code, not the same seven-character pattern.
Advanced example: subtract explicit holidays
Put =DATE(2026,6,2) in H2 and =DATE(2026,6,7) in H3. Under the Friday/Saturday weekend:
=NETWORKDAYS.INTL(DATE(2026,6,1),DATE(2026,6,7),7,$H$2:$H$3)
Expected result: 3, selecting June 1, June 3 and June 4. Tuesday and Sunday were working dates under this calendar, so both holiday entries remove one.
The example exclusions are fictional schedule choices, not automatically supplied public holidays. A Sunday holiday would not remove an additional working date from the standard Saturday/Sunday calendar, where Sunday is already excluded.
Advanced checks: endpoints and reversal
Under code 7, a same-date interval on Sunday June 7 has expected count 1; under the default calendar it has 0. Endpoints are included when they qualify as working dates.
=NETWORKDAYS.INTL(DATE(2026,6,7),DATE(2026,6,1),7)
Expected result: −5. Microsoft explicitly documents a negative return when start is after end, with magnitude equal to the working-date count. The reversed result is not a validation message; decide separately whether your report allows reversed intervals.
Advanced check: every day or no day can be working
Masks “0000000” and “1111111” give expected counts 7 and 0 over June 1–7. The all-ones mask is explicitly valid for NETWORKDAYS.INTL and returns zero.
That last rule is different from WORKDAY.INTL, whose reference rejects an all-nonworking schedule for finding a displaced working date. Do not transfer the count function’s accepted mask to the date-returning function without reviewing its own contract.
Errors and source precision
Microsoft documents #NUM! when a start or end date is outside the current date-base range. An invalid mask length or a character other than 0/1 produces #VALUE!. Exact errors for every unlisted numeric weekend code or mixed holiday input are not established by this page.
Its final vendor sample has conflicting prose and result for a Wednesday/Sunday mask. This guide uses independently enumerated June dates instead of copying that inconsistent sample. Timestamp fractions, duplicate holidays and invalid-date coercions remain separate native test cases.
NETWORKDAYS has the standard fixed weekend, while WORKDAY.INTL returns a target date rather than a count. Preserve that distinction when building a schedule.
References and verification
Expected results are independent calendar/arithmetic models or explicitly documented rules, not captured native output. Examples use English function names and comma separators. Input dates and schedules are fictional.