WORKDAY returns a date that’s a specified number of working days before or after a start date, excluding weekends and optional holidays. But if you think it just counts Monday–Friday and stops there, you’ll ship a project two days early.
Quick Answer
WORKDAY(start_date, days, [holidays]) adds or subtracts business days (Mon–Fri) from a start date, skipping weekends automatically — and optionally skipping dates in a holiday list. It doesn’t care about hours, time zones, or whether your team works Tuesday–Saturday; it assumes standard US weekdays unless you use WORKDAY.INTL.
All the Methods
| Method | Steps | Best For | Limitations |
|---|---|---|---|
| WORKDAY (default) | =WORKDAY(A2,B2,C2:C6) | US-based teams with Mon–Fri schedules and fixed holiday list | Can’t handle non-standard weekends (e.g., Fri–Sat off); holidays must be actual dates, not text strings |
| WORKDAY.INTL | =WORKDAY.INTL(A2,B2,11,C2:C6) — '11' = Sun–Mon off | Global teams, rotating shifts, or custom weekend patterns | Weekend code is unintuitive (e.g., 17 = Sat–Sun off but treats Friday as workday — wait, no: 17 means only Sunday off) |
| WORKDAY + NETWORKDAYS combo | Use NETWORKDAYS to verify count, then feed result into WORKDAY for validation | Auditing deadline logic before sending to Legal or Finance | Adds two extra formulas; overkill for simple internal task tracking |
| Array-entered WORKDAY with dynamic holidays | =WORKDAY(A2,B2,IF(D2:D10="Yes",E2:E10,"")) — Ctrl+Shift+Enter (or Enter in newer Excel) | Projects where holidays are flagged conditionally (e.g., "Observed" column) | Fails silently if array isn’t entered correctly; breaks in Excel Web without legacy array support |
Method 1 Deep Dive
Let’s say Sarah Chen (Project Lead, Acme Corp) needs to set a QA sign-off date: 10 business days after dev handoff on April 5, 2024. Her team observes 4 holidays that quarter: April 10 (Emancipation Day), May 27 (Memorial Day), June 19 (Juneteenth), and July 4 (Independence Day).
She enters this in cell D2:=WORKDAY(A2,B2,C2:C5)
where A2 = 2024-04-05, B2 = 10, and C2:C5 contains those four holiday dates.
Excel returns 2024-04-19. Wait — that’s a Friday. And April 10 is skipped. So it counts: Apr 5 (start), Apr 8–9 (2 days), skips Apr 10, then Apr 11–12 (2 more), Apr 15–16 (2), Apr 17–18 (2), Apr 19 (10th). Correct.
Here’s the surprise: WORKDAY *includes* the start date only when days = 0. If B2 = 0, D2 = 2024-04-05. If B2 = 1, it lands on Apr 8 — not Apr 6. It treats the start date as “day zero”, then moves forward full business days. This trips up PMs who assume +1 means “tomorrow”.
Also — and this matters in shared workbooks — if C2:C5 contains a typo like "2024-04-10" typed as text (not a real date), WORKDAY ignores it silently. No error. Just an incorrect result. Always check holiday cells with =ISNUMBER(C2).
Method 2 Deep Dive
Now imagine Rajiv Patel runs a Dubai office. His team works Sunday–Thursday, with Friday–Saturday off. Using plain WORKDAY would give him deadlines on Fridays — useless.
He uses WORKDAY.INTL instead. In F2, he writes:=WORKDAY.INTL(E2,G2,7,H2:H6)
E2 = 2024-04-05, G2 = 10, H2:H6 = same holidays, and 7 tells Excel: “weekend = Friday & Saturday” (the code chart is buried in Excel help — 1 = Sat–Sun, 2 = Sun–Mon, … 7 = Fri–Sat).
The result? 2024-04-18 — a Thursday. That’s one day earlier than the US version. Why? Because under Fri–Sat off, April 7 and 14 are Sundays (workdays), so the count compresses.
Keyboard shortcut tip: To open the Function Arguments dialog for any function — including WORKDAY — select the cell, press Alt + M + I. You’ll see each argument labeled clearly. Much faster than scrolling through tooltip hints.
One thing most people miss: WORKDAY.INTL’s weekend argument accepts a 7-character string like "0000011" — where 1 = weekend day, 0 = workday — starting Monday. So "0000011" = Fri & Sat off. But if you type "1100000", Excel reads it as Mon & Tue off. That’s why Rajiv’s team once scheduled a sprint review on a Monday — because someone pasted the string backward.
Cheat Sheet
| Task | Formula | Shortcut / Tip | Cell Example |
|---|---|---|---|
| Add 5 workdays, skip holidays in C2:C8 | =WORKDAY(A2,5,C2:C8) | Always validate holidays with =ISNUMBER() | A2 = 2024-03-15 → returns 2024-03-22 |
| Skip weekends + Fri–Sat off | =WORKDAY.INTL(A2,5,"0000011",C2:C8) | Use Alt+M+I to open argument dialog | A2 = 2024-03-15 → returns 2024-03-21 |
| Count backward: 3 days before deadline | =WORKDAY(A2,-3,C2:C8) | Negative days = go backward; still skips weekends/holidays | A2 = 2024-05-10 → returns 2024-05-07 |
| Confirm holiday list is valid | =SUMPRODUCT(--ISNUMBER(C2:C8)) | Should equal row count — if less, some holidays are text | Returns 4 if all 4 holidays are real dates |
| Dynamic holiday range (filtered) | =WORKDAY(A2,5,IF(D2:D20="Yes",E2:E20,"")) | Enter with Ctrl+Shift+Enter in older Excel | Only includes E2:E20 where D column = "Yes" |
| Avoid weekend-only miscalculation | =WORKDAY.INTL(A2,5,1,C2:C8) | Code 1 = default Sat–Sun off — safest for US teams | Same as plain WORKDAY, but more explicit |