NETWORKDAYS in Google Sheets: Count Working Days and Holidays

Updated 6 minute readBy the Exclusive Design Lab team

NETWORKDAYS counts the working days between two dates, Monday to Friday, including both the start and the end date, and skips any holidays you list. The formula is =NETWORKDAYS(start_date, end_date, [holidays]), so =NETWORKDAYS(DATE(2027,3,1), DATE(2027,3,31)) returns 23, the working days in March 2027. For a different weekend use NETWORKDAYS.INTL, and to find a date a set number of working days away use WORKDAY.

Every NETWORKDAYS Google Sheets example below works unchanged in Excel, and each result was checked against a day-by-day count of the calendar.

NETWORKDAYS Google Sheets Syntax and Examples

=NETWORKDAYS(start_date, end_date, [holidays])

  • start_date and end_date: real dates, either cell references or DATE(year, month, day).
  • holidays: optional. A range or list of dates to skip.

Three rules explain almost every surprising result:

  1. Both ends count when they are working days. Monday, June 7, 2027 to itself returns 1, and Saturday, June 5 to itself returns 0.
  2. A reversed range goes negative. If the end date is before the start date, the result is negative.
  3. A holiday on a weekend is not subtracted twice. It was never a working day, so listing it changes nothing.

Here are worked examples with a holiday list named Holidays (set up below):

Formula What it counts Result
=NETWORKDAYS(DATE(2027,3,1), DATE(2027,3,31)) March 2027 23
=NETWORKDAYS(DATE(2027,11,1), DATE(2027,11,30)) November 2027, no holidays 22
=NETWORKDAYS(DATE(2027,11,1), DATE(2027,11,30), Holidays) November 2027, minus Thanksgiving and the day after 20
=NETWORKDAYS(DATE(2027,1,1), DATE(2027,12,31), Holidays) All of 2027 254
=NETWORKDAYS(DATE(2027,12,31), DATE(2027,12,1), Holidays) December 2027, dates reversed -22

Use DATE() rather than typing “11/1/2027” inside a formula. Text dates are read according to your locale, so the same text can mean November 1 on one computer and January 11 on another.

Calculate Working Days Between Dates in a Task List

In a real sheet the dates live in cells. With a start date in B2 and an end date in C2:

  • Task length in working days: =NETWORKDAYS(B2, C2, Holidays)
  • Working days left until the due date: =NETWORKDAYS(TODAY(), C2, Holidays)
  • Overdue check: =IF(C2<TODAY(), "Overdue", NETWORKDAYS(TODAY(), C2, Holidays))

Remember that NETWORKDAYS is inclusive. Monday, November 1 to Friday, November 5, 2027 returns 5, because it counts every day you work. If you want the gap instead (“how many working days after Monday is Friday?”), subtract 1 and you get 4. For “days left”, the inclusive count is usually right: on the due date itself, you still have that day.

For turning these counts into status colors and a progress report, see how to track project progress.

Exclude Holidays From the Date Calculation

Keep your days off in one place and point every formula at it. Add a sheet named Setup and list the dates in column A. Here is an example list for a small US business in 2027 (use your own days off):

Date Day Holiday
Jan 1, 2027 Friday New Year’s Day
May 31, 2027 Monday Memorial Day
Jul 4, 2027 Sunday Independence Day
Jul 5, 2027 Monday Independence Day (observed)
Sep 6, 2027 Monday Labor Day
Nov 25, 2027 Thursday Thanksgiving
Nov 26, 2027 Friday Day after Thanksgiving
Dec 24, 2027 Friday Christmas Day (observed)

July 4 falls on a Sunday, so listing it does no harm: the count for all of 2027 is 254 with or without it. Only the seven weekday dates reduce the count, from 261 weekdays to 254 working days.

Then give the list a name, so formulas stay short and survive new rows:

  • Google Sheets: select A2:A20 on the Setup sheet, choose Data > Named ranges and name it Holidays.
  • Excel: select A2:A20, type Holidays in the Name Box to the left of the formula bar and press Enter. Formulas > Define Name does the same.

Now =NETWORKDAYS(B2, C2, Holidays) works in both apps. Three tips keep the list reliable:

  • Every holiday must be a real date. =ISNUMBER(A2) returns TRUE for a date and FALSE for text that only looks like one.
  • Add next year’s days off before any plan crosses into January.
  • For a quick one-off in Google Sheets you can type the list inline: =NETWORKDAYS(B2, C2, {DATE(2027,11,25); DATE(2027,11,26)}). Excel does not accept functions inside an array constant, so use a range there.

Custom Weekends With NETWORKDAYS.INTL

=NETWORKDAYS.INTL(start_date, end_date, [weekend], [holidays])

The weekend argument is either a number or a seven-character string. In the string, each character is a day starting with Monday: 1 means a day off and 0 means a working day. So "0000011" means Saturday and Sunday off, the same as plain NETWORKDAYS.

November 2027 with the holiday list above:

Working pattern Weekend code Result
Monday to Friday 1 or "0000011" 20
Monday to Saturday 11 or "0000001" 24
Sunday to Thursday 7 or "0000110" 21
Tuesday to Saturday 2 or "1000001" 19
Monday to Thursday "0000111" 17

A shop open Tuesday to Saturday uses =NETWORKDAYS.INTL(DATE(2027,11,1), DATE(2027,11,30), "1000001", Holidays), which returns 19.

Number codes 1 to 7 cover two-day weekends and 11 to 17 cover single days off (11 is Sunday only, 17 is Saturday only). A string handles any pattern, including a four-day week, which has no number code. Notice the Friday holiday in the four-day and Sunday to Thursday rows: November 26 is already a day off there, so only Thanksgiving comes off the count.

Always put the string in quotes. Without them, 0000011 is read as the number 11, which means a Sunday-only weekend and a very different answer.

WORKDAY: Find a Due Date N Working Days Away

=WORKDAY(start_date, days, [holidays])

WORKDAY does not count the start date. It returns the date that is days working days after it. With the same holiday list:

  • =WORKDAY(DATE(2027,11,22), 5, Holidays) returns Wednesday, December 1, 2027, skipping Thanksgiving, the day after and the weekend. Without the holiday list it returns Monday, November 29.
  • =WORKDAY(DATE(2027,11,20), 1, Holidays) returns Monday, November 22. Starting on a Saturday works: the first working day after it is Monday.

For a task’s end date, subtract 1 from the duration, because the task works on its start day too. A 10-day task starting Monday, November 15, 2027 ends on =WORKDAY(DATE(2027,11,15), 10-1, Holidays), which is Tuesday, November 30. Check it with =NETWORKDAYS(DATE(2027,11,15), DATE(2027,11,30), Holidays), which returns 10.

A negative number counts backward, which is how you find a latest start. For 15 full working days before a Friday, December 17 deadline, =WORKDAY(DATE(2027,12,17), -15, Holidays) returns Wednesday, November 24. Our guide on how to create a project timeline chains these formulas into a whole schedule.

If Excel shows a number such as 46722 instead of a date, the formula worked: that is December 1, 2027 as a serial number. Press Ctrl+1 and choose Date. In Google Sheets, use Format > Number > Date.

WORKDAY.INTL for Custom Weekends

=WORKDAY.INTL(start_date, days, [weekend], [holidays]) takes the same weekend codes as NETWORKDAYS.INTL. Ten working days from Monday, November 22, 2027, with the holiday list:

Team works Formula Result
Monday to Friday =WORKDAY(DATE(2027,11,22), 10, Holidays) Wed, Dec 8
Monday to Saturday =WORKDAY.INTL(DATE(2027,11,22), 10, 11, Holidays) Mon, Dec 6
Monday to Thursday =WORKDAY.INTL(DATE(2027,11,22), 10, "0000111", Holidays) Thu, Dec 9

Google Sheets vs Excel: What Differs

  • Names and arguments: identical in both apps, so formulas copy across.
  • Versions: NETWORKDAYS and WORKDAY are built into Excel 2007 and later. NETWORKDAYS.INTL and WORKDAY.INTL need Excel 2010 or later. Google Sheets has all four.
  • Inline holiday lists: Google Sheets accepts {DATE(...); DATE(...)}, and Excel needs a range.
  • Errors: #VALUE! usually means a date argument is text that cannot be read as a date, or a weekend string is not exactly seven 0s and 1s.
  • Conditional formatting: Google Sheets rules cannot read a holiday range on another sheet without INDIRECT, and Excel rules can. This matters when you shade days off on a chart grid, as in our guides to building a Gantt chart in Google Sheets and Excel.

If you would rather not wire this up yourself, our Gantt chart template takes your working days and holiday list on its setup tab and marks them on the chart. Either way, update the holiday list first thing each December, before anyone plans work that crosses into the new year.

Frequently asked questions

What is the difference between NETWORKDAYS and WORKDAY?

NETWORKDAYS takes two dates and returns a count of working days. WORKDAY takes a date and a number of working days and returns a date. Use NETWORKDAYS to measure a task and WORKDAY to schedule one.

Can NETWORKDAYS count hours or half days?

No. It counts whole days only. For hours, multiply the working days by your hours per day, and subtract half days yourself.

How do I count only the weekend days between two dates?

Use =NETWORKDAYS.INTL(start, end, "1111100"), which treats Monday to Friday as the weekend and counts Saturdays and Sundays. For November 2027 it returns 8.