Business Days in Excel and Google Sheets: NETWORKDAYS, WORKDAY and Holidays

To count business days between two dates in Excel or Google Sheets, use =NETWORKDAYS(start_date, end_date, holidays). It counts Monday to Friday, includes both the start and the end date, and skips every date in the holidays range. To find the date N business days later, use =WORKDAY(start_date, N, holidays).

  • Other weekends (Friday–Saturday, Sunday only, a 4-day week): NETWORKDAYS.INTL and WORKDAY.INTL with a weekend code.
  • Holidays are not built in. You supply them as a range of dates. Copy-paste lists for US federal holidays and England & Wales bank holidays are further down this page.
  • No spreadsheet to hand? The business days calculator gives the same answer as NETWORKDAYS: it also counts both dates by default.
FunctionReturnsSyntaxStart date
NETWORKDAYSNumber of business days (Mon–Fri) between two dates=NETWORKDAYS(start, end, [holidays])Counted (both ends)
NETWORKDAYS.INTLThe same, with a weekend you choose=NETWORKDAYS.INTL(start, end, [weekend], [holidays])Counted (both ends)
WORKDAYThe date N business days before or after a date=WORKDAY(start, days, [holidays])Not counted (day 0)
WORKDAY.INTLThe same, with a weekend you choose=WORKDAY.INTL(start, days, [weekend], [holidays])Not counted (day 0)
The four business-day functions. All four work the same way in Excel (2010 and later, and Microsoft 365) and Google Sheets.

NETWORKDAYS: count business days between two dates

NETWORKDAYS takes a start date, an end date and an optional list of holidays. It returns the number of weekdays from the start to the end, counting both dates, minus any holidays in the list that fall on a weekday. Saturday and Sunday are always the weekend; use NETWORKDAYS.INTL if yours is different.

Put your dates in cells and refer to them (=NETWORKDAYS(A2, B2, Holidays)), or build them with DATE(year, month, day). Avoid typing dates as text inside the formula, such as "11/1/2026": a text date is read with your computer’s regional settings, so the same file can give a different answer, or #VALUE!, on another machine.

The examples below assume a range named Holidays that holds the US federal holidays (see how to set one up). Every result in the right-hand column is calculated live by this site’s holiday engine, the same one behind the calculator, so you can use it to check your sheet.

FormulaWhat it countsResult
=NETWORKDAYS(DATE(2026,11,1), DATE(2026,11,30))Weekdays in November 2026, no holidays21
=NETWORKDAYS(DATE(2026,11,1), DATE(2026,11,30), Holidays)The same, minus Veterans Day (Nov 11) and Thanksgiving (Nov 26)19
=NETWORKDAYS(DATE(2026,12,1), DATE(2026,12,31), Holidays)December 2026, minus Christmas Day (Fri Dec 25)22
=NETWORKDAYS(DATE(2026,12,1), DATE(2026,12,31), UK_Holidays)December 2026 in England and Wales, minus Christmas Day and the Boxing Day substitute (Mon Dec 28)21
=NETWORKDAYS(DATE(2026,11,20)+1, DATE(2026,12,7), Holidays)Business days after Nov 20 up to Dec 7: the start date left out10
=NETWORKDAYS(DATE(2026,11,30), DATE(2026,11,1), Holidays)Dates reversed: the count comes back negative−19
=NETWORKDAYS(TODAY(), DATE(YEAR(TODAY()),12,31), Holidays)Business days left this year, today included48 (on October 22, 2026)
NETWORKDAYS examples with US federal holidays (UK_Holidays: England and Wales bank holidays).

Does NETWORKDAYS include the start date?

Yes. NETWORKDAYS counts both the start date and the end date if they are business days. From Monday to Friday of the same week is 5, and from a Monday to the same Monday is 1, not 0. Our calculator uses the same convention by default, so its answer and your NETWORKDAYS cell should match; the methodology page explains how we count.

Many deadlines work the other way: “within 10 business days of receipt” usually means the day of receipt is day 0. To leave the start date out, start the count one day later: =NETWORKDAYS(A2+1, B2, Holidays). This is safer than NETWORKDAYS(A2, B2, Holidays)-1, which is one too low whenever the start date is a weekend or holiday (there was nothing to subtract). To leave out both ends, use A2+1 and B2-1.

How to exclude holidays: set up a holiday range

  1. Add a sheet called Holidays. Paste one holiday date per row in column A (names in column B are fine; only column A is used). Lists for this year and next are below.
  2. Check that column A holds real dates, not text: select it and look at the alignment (dates align right by default), or test a cell with =ISNUMBER(A2), which must be TRUE.
  3. Name the range. In Excel, select the dates and type Holidays in the Name Box left of the formula bar. In Google Sheets, use Data → Named ranges.
  4. Use the name in every formula: =NETWORKDAYS(A2, B2, Holidays). Without a name, lock the range with dollar signs (Holidays!$A$2:$A$30) so it doesn’t shift when you fill the formula down.

Three details trip people up:

  • Use the observed day off, not the calendar date. Independence Day 2026 falls on a Saturday, so federal offices close on Friday, July 3. Your list needs July 3; July 4 is a Saturday and changes nothing. The lists below already show the day off.
  • A holiday on a weekend is not subtracted twice. NETWORKDAYS only removes holidays that fall on a working day, so leaving weekend dates in the list is harmless.
  • Cover every year you count across. A count from December to February needs both years’ holidays in the range.

NETWORKDAYS.INTL: weekend codes for other work weeks

NETWORKDAYS.INTL(start, end, weekend, holidays) works like NETWORKDAYS but lets you say which days are the weekend. The third argument is either a number from the table below or a 7-character text string.

CodeWeekend daysCodeWeekend day
1 (default)Saturday, Sunday11Sunday only
2Sunday, Monday12Monday only
3Monday, Tuesday13Tuesday only
4Tuesday, Wednesday14Wednesday only
5Wednesday, Thursday15Thursday only
6Thursday, Friday16Friday only
7Friday, Saturday17Saturday only
NETWORKDAYS.INTL and WORKDAY.INTL weekend numbers (the same in Excel and Google Sheets).

The weekend string covers any pattern the numbers don’t. It has seven characters, one per day from Monday to Sunday: 1 means a day off, 0 a working day. "0000011" is the normal Saturday–Sunday weekend, "0000111" a Monday-to-Thursday week, and "1000001" a Tuesday-to-Saturday week. A string of all 1s is not allowed.

FormulaWork weekResult
=NETWORKDAYS.INTL(DATE(2026,11,1), DATE(2026,11,30), 7)Sunday–Thursday (Friday–Saturday weekend)22
=NETWORKDAYS.INTL(DATE(2026,11,1), DATE(2026,11,30), 11)Monday–Saturday (6-day week)25
=NETWORKDAYS.INTL(DATE(2026,11,1), DATE(2026,11,30), "0000011")Monday–Friday: same as NETWORKDAYS21
November 2026, no holidays. November 1, 2026 is a Sunday.

WORKDAY and WORKDAY.INTL: add business days to a date

=WORKDAY(start_date, days, holidays) returns the date that is days business days after the start date. The start date itself is day 0 and is never counted, so WORKDAY on a Friday with 1 day gives the following Monday. A negative number of days counts backwards. This matches “N business days from” on our calculator and on our 30 business days from today page.

FormulaWhat it doesResult
=WORKDAY(DATE(2026,11,20), 10, Holidays)10 business days after Fri Nov 20, skipping Thanksgiving
=WORKDAY(DATE(2026,11,20), 10)The same with no holiday listFriday, December 4, 2026
=WORKDAY(DATE(2026,12,24), 1, Holidays)Next business day after Christmas Eve
=WORKDAY(DATE(2026,12,1), -5, Holidays)5 business days before Dec 1
=WORKDAY(TODAY(), 30, Holidays)30 business days from today
=WORKDAY.INTL(DATE(2026,11,20), 10, "0000111", Holidays)10 working days on a Monday–Thursday weekWednesday, December 9, 2026
=WORKDAY(A2-1, 1, Holidays)A2 if it is a business day, otherwise the next oneFor Sun Dec 27, 2026: Monday, December 28, 2026
WORKDAY examples. Holidays = US federal holidays.

WORKDAY returns a date serial number. If a cell shows something like 46363 instead of a date, format it as a date (Excel: Ctrl+1 → Date; Google Sheets: Format → Number → Date). The serial is the number of days since December 30, 1899, which is why it looks like a five-digit number.

The last row is the “roll forward” trick for due dates: going back one day and then forward one business day lands on the date itself when it is a business day, or on the next business day when it is not. It is how the Net 30 calculator moves a due date that falls on a weekend or holiday.

Business days in Google Sheets

Google Sheets has the same four functions with the same arguments and weekend codes: NETWORKDAYS, NETWORKDAYS.INTL, WORKDAY and WORKDAY.INTL. Every formula on this page works in Sheets unchanged. Two things differ in practice:

  • Typed dates follow the spreadsheet’s locale, not your computer’s. If 3/4/2027 becomes April 3 instead of March 4, check File → Settings → Locale, or use DATE(2027,3,4), which is never ambiguous.
  • A holiday list can be inline as an array of dates: =NETWORKDAYS(A2, B2, {DATE(2026,11,11), DATE(2026,11,26)}). A named range is still easier to maintain.

To count across a whole column, fill the formula down (double-click the fill handle) or, in Sheets, wrap it in ARRAYFORMULA. Keep the holiday range locked or named so every row uses the same list.

Holiday lists to paste into Excel or Google Sheets

These are the days off, with observed dates already applied, for the current and next year. Each box holds the same list as the table above it, as plain text: one row per holiday, the date in YYYY-MM-DD form (which Excel and Sheets read as a date in every locale), then a tab and the name. Click the box to select it all, copy, and paste into cell A2 of your Holidays sheet. Dates come from OPM for the US and GOV.UK for England and Wales.

US federal holidays 2026

United States (federal) holidays 2026
DateDayHolidayNote
ThursdayNew Year's Day
MondayMartin Luther King Jr. Day
MondayWashington's Birthday (Presidents' Day)
MondayMemorial Day
FridayJuneteenth National Independence Day
FridayIndependence Day (observed)Observed; the holiday falls on Saturday, July 4
MondayLabor Day
MondayColumbus Day
WednesdayVeterans Day
ThursdayThanksgiving Day
FridayChristmas Day

US federal holidays 2027

United States (federal) holidays 2027
DateDayHolidayNote
FridayNew Year's Day
MondayMartin Luther King Jr. Day
MondayWashington's Birthday (Presidents' Day)
MondayMemorial Day
FridayJuneteenth National Independence Day (observed)Observed; the holiday falls on Saturday, June 19
MondayIndependence Day (observed)Observed; the holiday falls on Sunday, July 4
MondayLabor Day
MondayColumbus Day
ThursdayVeterans Day
ThursdayThanksgiving Day
FridayChristmas Day (observed)Observed; the holiday falls on Saturday, December 25
FridayNew Year's Day (observed)Observed; the holiday falls on Saturday, January 1, 2028

England and Wales bank holidays 2026

England and Wales holidays 2026
DateDayHolidayNote
ThursdayNew Year's Day
FridayGood Friday
MondayEaster Monday
MondayEarly May bank holiday
MondaySpring bank holiday
MondaySummer bank holiday
FridayChristmas Day
MondayBoxing Day (substitute day)Observed; the holiday falls on Saturday 26 December

England and Wales bank holidays 2027

England and Wales holidays 2027
DateDayHolidayNote
FridayNew Year's Day
FridayGood Friday
MondayEaster Monday
MondayEarly May bank holiday
MondaySpring bank holiday
MondaySummer bank holiday
MondayChristmas Day (substitute day)Observed; the holiday falls on Saturday 25 December
TuesdayBoxing Day (substitute day)Observed; the holiday falls on Sunday 26 December

Need another year? Lists for every year to 2030 are on the US federal holidays 2025–2030 page and the UK bank holidays page. Banks in the US follow a slightly different calendar from federal offices (see US bank holidays), and the holidays hub covers Canada and other countries.

Common errors and wrong answers

SymptomUsual causeFix
#VALUE!A start or end date (or a holiday) is text, not a date. Common after importing a CSV or pasting from a web page or PDF.Test with =ISNUMBER(A2). Convert with =DATEVALUE(A2), Excel's Data → Text to Columns → Date, or rebuild with DATE().
#VALUE! in an .INTL functionThe weekend string is not exactly 7 characters of 0 and 1Use a code from the table, or a string like "0000011" in quotes
#NUM!A weekend number that isn't in the table, or a date outside the spreadsheet's date rangeCheck the third argument of the .INTL function and that dates are after 1900
#NAME?A typo in the function name or an undefined range nameCheck spelling, and that the named range Holidays exists
Result looks like 46363WORKDAY returned a date, but the cell is formatted as a numberFormat the cell as a date
One day too manyNETWORKDAYS counts the start date; your rule doesn'tUse A2+1 as the start (see above)
Holiday not removedThe list has the calendar date, not the observed day off, or the holiday cells are textUse the observed dates from the lists above; check ISNUMBER
Count changes as you fill downThe holiday range moved with the formulaUse a named range or $A$2:$A$30
NETWORKDAYS and WORKDAY troubleshooting.

Business days formula without NETWORKDAYS

If you need to see how the count works, or your tool has no NETWORKDAYS, this formula counts Monday–Friday days from A2 to B2, both included. It needs SEQUENCE, so Excel 2021, Microsoft 365 or Google Sheets:

=SUMPRODUCT(--(WEEKDAY(SEQUENCE(B2-A2+1, 1, A2), 2) < 6))

WEEKDAY(date, 2) numbers Monday as 1 and Sunday as 7, so values below 6 are weekdays. It does not remove holidays and is slower than NETWORKDAYS on large sheets; use it to check, not in production workbooks.

Frequently asked questions

How do I calculate business days between two dates in Excel?

Use =NETWORKDAYS(A2, B2, Holidays) with the start date in A2, the end date in B2 and a range of holiday dates named Holidays. It counts Monday to Friday, includes both dates, and leaves out the holidays.

Does NETWORKDAYS include the start and end date?

Yes, both, when they are business days. To leave the start date out, use =NETWORKDAYS(A2+1, B2, Holidays).

What is the difference between NETWORKDAYS and WORKDAY?

NETWORKDAYS takes two dates and returns a number of business days. WORKDAY takes a date and a number of business days and returns a date. NETWORKDAYS counts the start date; WORKDAY does not.

How do I count working days with a Friday–Saturday or Sunday-only weekend?

Use NETWORKDAYS.INTL with weekend code 7 for Friday–Saturday or 11 for Sunday only, for example =NETWORKDAYS.INTL(A2, B2, 7, Holidays). For any other pattern, use a 7-character string from Monday to Sunday, such as "0000111".

Does Excel know public holidays?

No. Excel and Google Sheets have no built-in holiday calendar. NETWORKDAYS only skips the dates you give it in the holidays argument, so you need to keep a list of holiday dates for every year you count across.

Sources (last checked October 21, 2026): Microsoft Support: NETWORKDAYS, NETWORKDAYS.INTL, WORKDAY, WORKDAY.INTL. Google Docs Editors Help: NETWORKDAYS, NETWORKDAYS.INTL, WORKDAY, WORKDAY.INTL. Holiday dates: OPM federal holidays, GOV.UK bank holidays. The formula results on this page are computed by our holiday engine; the weekday-only and .INTL results were counted by hand and checked with a script.

Scroll to Top