The WORKDAY function in Excel
WORKDAY returns the date that is a given number of working days before or after a start date. It skips Saturdays and Sundays, and any holidays you list. Use it for delivery dates, SLA deadlines and "reply within 5 business days" rules.
Syntax
=WORKDAY(start_date, days, [holidays])
| start_date | The date to count from. It isn't counted itself. |
|---|---|
| days | How many working days to move. Use a negative number to count backwards. |
| holidays | Optional. A range of dates to skip as well, like $E$2:$E$4. |
Try it yourself
This is a live spreadsheet. Type the formula and press Enter.
In D2, use WORKDAY to find the delivery date: C2 working days after the order date in B2, skipping weekends and the holidays in F2:F4.
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | Delivery date | Holidays | |||||
| 2 | |||||||
| 3 | |||||||
| 4 | |||||||
| 5 | |||||||
| 6 | |||||||
| 7 | |||||||
| 8 |
Tip: Start date first, then the number of working days. The holiday range goes last.
Examples
=WORKDAY(B2,C2)→ 46017Counts 5 working days after Friday Dec 19, skipping the weekend, which lands on Friday Dec 26. The result is a date serial number, so format the cell as a Date in Excel.
=TEXT(WORKDAY(B2,C2,E2:E4),"ddd, mmm d, yyyy")→ "Tue, Dec 30, 2025"The same order with the holiday list added. Dec 25 and 26 are skipped too, so delivery moves to Tuesday Dec 30.
=TEXT(WORKDAY(EOMONTH(B4,0)+1,-1),"ddd, mmm d, yyyy")→ "Fri, Jan 30, 2026"Steps back one working day from the first day of next month, which gives the last working day of this month. Jan 31, 2026 is a Saturday, so this returns Friday Jan 30.
Example data
| 1 | Order | Order date | Lead time (days) | Holidays | |
|---|---|---|---|---|---|
| 2 | PO-5521 | 12/19/2025 | 5 | 12/25/2025 | |
| 3 | PO-5530 | 12/22/2025 | 3 | 12/26/2025 | |
| 4 | PO-5544 | 1/2/2026 | 10 | 1/1/2026 |
Common mistakes
Counting the start date
WORKDAY starts counting the day after
start_date. One working day after a Friday is the next Monday.Holiday range moves when filled down
Lock the holiday list with
$, as in$E$2:$E$4, before copying the formula to other rows.Holidays typed as text
Holiday cells must be real dates. Text such as "Christmas" in the list returns #VALUE!.
A different weekend
WORKDAY always treats Saturday and Sunday as the weekend. For other weekends, use WORKDAY.INTL, which lets you choose the weekend days.
FAQ
How do I exclude public holidays with WORKDAY?+
Put the holiday dates in a range and pass it as the third argument: =WORKDAY(B2,5,$E$2:$E$10).
What if my weekend is Friday and Saturday?+
Use WORKDAY.INTL with a weekend code: =WORKDAY.INTL(B2,5,7) treats Friday and Saturday as the weekend.
What's the difference between WORKDAY and NETWORKDAYS?+
WORKDAY takes a number of working days and returns a date. NETWORKDAYS takes two dates and counts the working days between them.
Lesson
Master WORKDAY step by step: Workdays: NETWORKDAYS and WORKDAY
Count working days between two dates with NETWORKDAYS and find a deadline a number of working days away with WORKDAY, skipping weekends and a holiday list.