To count working days between two dates in Google Sheets, you can use NETWORKDAYS or NETWORKDAYS.INTL. This guide compares NETWORKDAYS vs NETWORKDAYS.INTL side by side. It uses a real practice file with ten projects and a holiday list, and every result shown in the screenshot is reproduced by the formulas below.
It is written for project managers, HR and payroll teams, and anyone who plans deadlines. In short: NETWORKDAYS assumes a Saturday–Sunday weekend, while NETWORKDAYS.INTL lets you choose any weekend pattern. Both can also skip a list of holidays.
🎥 Watch the Video Tutorial
Make a Copy of the Free Practice File
NETWORKDAYS vs NETWORKDAYS.INTL at a Glance
| Feature | NETWORKDAYS | NETWORKDAYS.INTL |
|---|---|---|
| Weekend | Always Saturday and Sunday | Any one or two days, or a custom pattern |
| Holidays | Optional range | Optional range |
| Start and end dates | Both counted if they are working days | Both counted if they are working days |
| Best for | Standard Monday–Friday offices | Six-day weeks, Friday–Saturday weekends, shift rosters |
| Syntax | NETWORKDAYS(start_date, end_date, [holidays]) |
NETWORKDAYS.INTL(start_date, end_date, [weekend], [holidays]) |
Syntax Explained
NETWORKDAYS
=NETWORKDAYS(start_date, end_date, [holidays])
| Argument | Meaning |
|---|---|
| start_date | First date of the period (a real date, not text). |
| end_date | Last date of the period. Both ends are included. |
| holidays (optional) | A range of dates to exclude. Holidays that fall on a weekend are not subtracted twice. |
NETWORKDAYS.INTL
=NETWORKDAYS.INTL(start_date, end_date, [weekend], [holidays])
| Argument | Meaning |
|---|---|
| start_date, end_date | Same as above. |
| weekend (optional) | A number code or a 7-character string that says which days are non-working. If you leave it out, the weekend is Saturday–Sunday. |
| holidays (optional) | A range of holiday dates to exclude. |
Weekend codes you can use
| Code | Weekend days | Code | Weekend day |
|---|---|---|---|
| 1 (default) | Saturday, Sunday | 11 | Sunday only |
| 2 | Sunday, Monday | 12 | Monday only |
| 3 | Monday, Tuesday | 13 | Tuesday only |
| 4 | Tuesday, Wednesday | 14 | Wednesday only |
| 5 | Wednesday, Thursday | 15 | Thursday only |
| 6 | Thursday, Friday | 16 | Friday only |
| 7 | Friday, Saturday | 17 | Saturday only |
Instead of a code, you can pass a 7-character string of 0s and 1s, read from Monday to Sunday, where 1 means “weekend”. So "0000011" is Saturday–Sunday, "0000001" is Sunday only, and "0000111" is Friday, Saturday and Sunday.
The Practice File
The sample sheet lists ten projects with a Project Name, Start Date and End Date. Three result columns count working days in different ways, and a Holiday list of 12 dates sits in J2:J13 (from 1-Jan-23 to 1-Jan-24).

| Column | Header | Formula (row 2) | What it counts |
|---|---|---|---|
| D | Net Workdays (SAT, SUN) | =NETWORKDAYS(B2,C2) |
Monday–Friday, no holidays |
| E | Net Workdays (Any Weekend) | =NETWORKDAYS.INTL(B2,C2,11) |
Six-day week, Sunday off |
| F | Net Workdays (Exclude Holiday) | =NETWORKDAYS.INTL(B2,C2,"1100000",$J$2:$J$13) |
Monday–Tuesday weekend, minus holidays |
The F column uses a Monday–Tuesday weekend to show that the weekend can be any pair of days. These three formulas reproduce every number in the screenshot.
Worked Example: Project-1 (1-Jan-23 to 23-Jan-23)
The period is 23 calendar days, from Sunday 1 January to Monday 23 January 2023.
- Column D, NETWORKDAYS = 16. Weekdays are 2–6, 9–13 and 16–20 January (15 days), plus Monday 23 January, for a total of 16.
- Column E, Sunday-only weekend = 19. Four Sundays fall in the range (1, 8, 15 and 22 January). 23 − 4 = 19.
- Column F, Monday–Tuesday weekend plus holidays = 15. There are four Mondays (2, 9, 16, 23) and three Tuesdays (3, 10, 17), so 23 − 7 = 16. The holiday 1-Jan-23 is a Sunday, which is a working day under this weekend, so it is removed too: 16 − 1 = 15.
Project-2 (5-Feb-23 to 23-Feb-23) shows how holidays interact with the weekend. Column F returns 13. The holidays 14-Feb-23 (a Tuesday) and 20-Feb-23 (a Monday) already fall on the custom weekend, so they are not subtracted again.
Step-by-Step: Use NETWORKDAYS
- Enter the start dates in column B and the end dates in column C. Make sure they are real dates: they should be right-aligned by default, and Format > Number > Date should change how they look.
- Type the holidays in one column (J2:J13 in the sample).
- In D2, enter
=NETWORKDAYS(B2,C2), or=NETWORKDAYS(B2,C2,$J$2:$J$13)to skip holidays. - Drag the fill handle down to row 11. The $ signs keep the holiday range fixed.
Step-by-Step: Use NETWORKDAYS.INTL
- Decide which days are your weekend and pick the matching code or string from the tables above.
- In E2, enter
=NETWORKDAYS.INTL(B2,C2,11)for a Sunday-only weekend. - Add the holiday range as the fourth argument if needed, for example
=NETWORKDAYS.INTL(B2,C2,7,$J$2:$J$13)for a Friday–Saturday weekend with holidays. - Copy the formula down the column.
Practical Variations
1. Working days remaining until a deadline
=NETWORKDAYS(TODAY(),C2,$J$2:$J$13)
This updates every day. Our guide on tracking project deadlines with NETWORKDAYS builds a full tracker around this idea.
2. Friday–Saturday weekend (common in the Middle East)
=NETWORKDAYS.INTL(B2,C2,7,$J$2:$J$13)
3. Alternate days for part-time staff
A string can mark more than two days. Someone who works only Monday, Wednesday and Friday has the pattern below:
=NETWORKDAYS.INTL(B2,C2,"0101011")
4. Working days in the current month
=NETWORKDAYS(EOMONTH(TODAY(),-1)+1,EOMONTH(TODAY(),0),$J$2:$J$13)
5. Exclude the start day
Both functions count the start date. If the work begins the next day, subtract one when the start date is itself a working day:
=NETWORKDAYS(B2,C2,$J$2:$J$13)-NETWORKDAYS(B2,B2,$J$2:$J$13)
Common Errors and Fixes
| Problem | Cause | Fix |
|---|---|---|
| #VALUE! | A date is stored as text (often left-aligned) | Re-enter it, or wrap it in DATEVALUE(); check File > Settings > Locale. |
| Negative result | Start date is after end date | Swap the dates or use ABS(). |
| Holidays not subtracted | Holiday range moves when you copy the formula | Lock it with $ signs: $J$2:$J$13. |
| Unexpected count | Weekend string read in the wrong order | Remember the string runs Monday → Sunday, and 1 means non-working. |
| Error with a weekend string | String is not exactly 7 characters, or all seven are 1 | Use seven 0/1 characters with at least one 0. |
Tips
- Keep the holiday list on its own tab and give it a named range (Data > Named ranges), such as
Holidays. Your formulas will read=NETWORKDAYS(B2,C2,Holidays). - Update the holiday list every year, because a stale list quietly inflates the counts.
- Use NETWORKDAYS when the weekend is Saturday–Sunday. It is shorter and easier for others to read.
- To find an end date from a number of working days, use WORKDAY or WORKDAY.INTL instead of trial and error.
For other date calculations, see how to count days between two dates, the DATEDIF and TODAY functions and our attendance sheet that counts workdays with checkboxes. If you plan projects on a timeline, the Project Plan or Gantt chart in Google Sheet post is a natural next step.
If you want to go further with structured lessons on date and lookup formulas, the Excel AI Mastery: 100 Formulas course on NextGenTemplates Academy teaches them with practice files. NETWORKDAYS and NETWORKDAYS.INTL work the same way in Excel.
Related template: Project Plan Gantt Chart in Google Sheet on NextGenTemplates.
Frequently Asked Questions
What is the difference between NETWORKDAYS and NETWORKDAYS.INTL?
NETWORKDAYS always treats Saturday and Sunday as the weekend. NETWORKDAYS.INTL adds a weekend argument, so you can choose any weekend days, including a single day off or a custom pattern.
Do NETWORKDAYS functions include the start and end date?
Yes. Both dates are counted when they are working days. For example, NETWORKDAYS from a Monday to the following Friday returns 5.
How do I count only Sundays as the weekend?
Use weekend code 11 or the string “0000001”: =NETWORKDAYS.INTL(B2,C2,11).
What happens if a holiday falls on a weekend?
Nothing extra. The day is already excluded as a weekend, so it is not subtracted a second time.
Can I use NETWORKDAYS.INTL without holidays?
Yes. The holidays argument is optional. Just stop after the weekend argument.
Is the weekend string read from Sunday or Monday?
From Monday. The first character is Monday and the seventh is Sunday.
Wrapping Up
Use NETWORKDAYS for a standard Monday–Friday week, and NETWORKDAYS.INTL whenever your weekend is different, from a Sunday-only six-day week to a Friday–Saturday weekend or a part-time pattern. Make a copy of the practice file, change a weekend code in column E or F, and watch the counts update. That is the quickest way to make the logic stick.
📅 Last updated: October 2026


