Arte SheetsLearn. Try. Understand.

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)
12026-05-22 (Friday — Day 1)2026-01-31 (=EOMONTH($D$2, 0))
22026-05-26 (Tuesday — skips Sat, Sun & May 25!)2026-02-28 (=EOMONTH($D$2, 1))
32026-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.

Further reading