Date & Time
Sequence of workdays and month-end dates (holiday-aware schedule)
Generate consecutive business days skipping weekends and holidays with WORKDAY(Start - 1, Step, Holidays) alongside rolling month-end closes.
Why WORKDAY(Start - 1, Step, Holidays) includes StartDate when it IS a workday!
WORKDAY(StartDate, 1) jumps to the NEXT business day—skipping StartDate itself! If a 5-day onboarding sprint begins on Monday May 25, 2026 (Memorial Day holiday!), you want Day 1 to land on Tuesday May 26—whereas if StartDate is Tuesday May 26, Day 1 should stay on May 26!
Passing StartDate - 1 as the anchor inside WORKDAY($A$2 - 1, C2, $B$2:$B$3) solves both cases automatically: Step 1 lands on StartDate if it is a valid business day, or advances cleanly past weekends and holidays if it is not!
| Step (C) | Workday Schedule (Anchor May 22 Fri, Holiday May 25 Mon) | Month-End Schedule (From Jan 15) |
|---|---|---|
| 1 | 2026-05-22 (Friday — Day 1) | 2026-01-31 (=EOMONTH($D$2, 0)) |
| 2 | 2026-05-26 (Tuesday — skips Sat, Sun & May 25!) | 2026-02-28 (=EOMONTH($D$2, 1)) |
| 3 | 2026-05-27 (Wednesday — Day 3) | 2026-03-31 (=EOMONTH($D$2, 2)) |
Holiday-aware Nth workday and rolling month-end formulas
Step index C2 (1, 2, 3, ...) drives both daily sprint schedules and monthly close calendars without manual date entry.
=TEXT(WORKDAY($A$2-1,C3,$B$2:$B$3),"yyyy-mm-dd")Generate Nth consecutive Month-End close date
EOMONTH($D$2, C2 - 1) returns Jan 31 for Step 1, Feb 28/29 for Step 2, Mar 31 for Step 3, etc.
=TEXT(EOMONTH($D$2,C3-1),"yyyy-mm-dd")Inputs and interpretation
Use positive integer steps and numeric dates without time fractions. WORKDAY follows Monday–Friday plus the supplied holiday list. The list is illustrative rather than a complete official calendar. EOMONTH returns calendar month ends, not the last working day.
Try the example
Use the original values or change them to test your understanding.