NETWORKDAYS and WORKDAY functions in Excel
NETWORKDAYS counts the working days between two dates; WORKDAY returns the date a number of working days ahead.
Deadlines, notice periods, delivery promises and pay calculations are counted in working days, not calendar days. These functions skip weekends for you, and public holidays too if you give them a list.
Syntax
=NETWORKDAYS(start_date, end_date, [holidays])=WORKDAY(start_date, days, [holidays])=NETWORKDAYS.INTL(start_date, end_date, [weekend], [holidays])| Argument | What it is |
|---|---|
start_date, end_date | The first and last dates. Both are counted if they are working days. |
days | For WORKDAY: how many working days to move. Negative goes back. |
holidays | A range of dates to leave out as well as weekends. |
weekend | For the .INTL versions: which days are the weekend. 1 is Saturday and Sunday, 11 is Sunday only, 7 is Friday and Saturday. |
Examples
Each result below is what Excel itself showed for the formula on the sample sheet.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Name | Born | Joined | Holiday |
| 2 | Anita | 19-Jul-1988 | 01-Apr-2019 | 26-Jan-2026 |
| 3 | Rohit | 30-Nov-1992 | 15-Jun-2020 | 04-Mar-2026 |
| 4 | Deepa | 29-Feb-1996 | 01-Sep-2021 | 15-Aug-2026 |
| 5 | Manoj | 05-Dec-1999 | 10-Jan-2022 | 02-Oct-2026 |
=NETWORKDAYS(DATE(2026,1,1),DATE(2026,1,31))Result: 22Working days in January 2026, Monday to Friday.
=NETWORKDAYS(DATE(2026,1,1),DATE(2026,1,31),D2:D5)Result: 21The same, leaving out the holidays listed in D2:D5. 26 January is a Monday, so one day fewer.
=NETWORKDAYS.INTL(DATE(2026,1,1),DATE(2026,1,31),11)Result: 27Weekend code 11 makes Sunday the only day off: a six-day working week.
=NETWORKDAYS.INTL(DATE(2026,1,1),DATE(2026,1,31),11,D2:D5)Result: 26Six-day week, less the holidays.
=WORKDAY(DATE(2026,1,22),5)Result: Thu 29-Jan-2026Five working days after Thursday 22 January: the weekend is skipped.
=WORKDAY(DATE(2026,1,22),5,D2:D5)Result: Fri 30-Jan-2026With the holiday list, 26 January is skipped too.
=WORKDAY(DATE(2026,3,10),-3)Result: Thu 05-Mar-2026A negative number counts back: three working days before 10 March.
=NETWORKDAYS(DATE(2026,8,15),DATE(2026,8,16))Result: 0A Saturday and a Sunday: no working days.
NETWORKDAYS: how many working days?
NETWORKDAYS counts the working days from the start date to the end date, including both. From a Monday to the Friday of the same week is 5, not 4.
By default the weekend is Saturday and Sunday.
WORKDAY: which date?
WORKDAY answers the opposite question. Given a start date and a number of working days, it returns the date you arrive at. The start date itself is not counted. "Five working days from Thursday" starts counting on Friday.
Format the result cell as a date, or you will see a number.
The holiday list
Both functions accept a range of dates to treat as non-working. Keep the list on its own sheet, one date per cell, and refer to it with fixed references, or give the range a name such as Holidays. Then the formula reads =NETWORKDAYS(A2,B2,Holidays).
Public holidays differ by country, by state and by organisation, and many change from year to year. Excel has no built-in list. Take the dates from your own organisation's holiday list or the official notification for your state, and update the range each year.
A holiday that falls on a weekend is not subtracted twice.
A six-day week, or a different weekend
Many offices, shops and schools in India work on Saturdays. The .INTL versions let you say which days are off.
| weekend code | Days off |
|---|---|
| 1 or left out | Saturday and Sunday |
| 2 | Sunday and Monday |
| 7 | Friday and Saturday |
| 11 | Sunday only |
| 12 | Monday only |
| 17 | Saturday only |
For anything else, give a text of seven digits, one for each day from Monday to Sunday, where 1 means a day off. "0000011" is Saturday and Sunday. "0000001" is Sunday only. "0010001" is Wednesday and Sunday.
WORKDAY.INTL takes the same codes: =WORKDAY.INTL(A2,10,11,Holidays) is ten working days ahead in a six-day week.
Alternate Saturdays off, as in banks, cannot be expressed with a weekend code. List those Saturdays among the holidays.
Uses
- Days taken to finish a job:
=NETWORKDAYS(received, completed, Holidays). - A due date:
=WORKDAY(order_date, 7, Holidays). - Working days left in the month:
=NETWORKDAYS(TODAY(), EOMONTH(TODAY(),0), Holidays). - Pay for part of a month: working days attended divided by working days in the month.
- The last working day of a month:
=WORKDAY(EOMONTH(A2,0)+1, -1, Holidays), one working day back from the first of the next month. - The next working day, if a date falls on a day off:
=WORKDAY(A2-1, 1, Holidays).
Common mistakes
- Forgetting that NETWORKDAYS counts both ends, and WORKDAY does not count the start.
- Holidays stored as text. They must be real dates, or they are ignored without warning.
- A negative result from NETWORKDAYS when the end date is before the start date.
- Using the plain versions in an organisation that works Saturdays.
- An out-of-date holiday list.
In Google Sheets
NETWORKDAYS, WORKDAY and their .INTL versions all exist in Google Sheets, with the same weekend codes.
Related functions
Every result on this page was calculated in Microsoft Excel (version 16.0, build 20326) on 12 November 2026, not typed by hand.
This is an independent help site. It is not connected with or approved by Microsoft. Excel and Microsoft 365 are trademarks of Microsoft Corporation, named here only to say which program a formula is for. The people and figures in the sample sheets are made up.