Arte SheetsLearn. Try. Understand.

Date & Time

Next business day N months in the future (EDATE + WORKDAY "-1, +1" trick)

Shift a date by whole months, then keep it if it is a working day or roll forward using a supplied holiday list and Saturday–Sunday weekends.

Why WORKDAY(EDATE(Start, 6), 1) overshoots weekday anniversaries—and "-1, +1" fixes it!

WORKDAY(EDATE(A2,B2),1) always advances one working day. To keep a target date that is already a working day, subtract one calendar day before advancing one working day.

This implements a following convention. It is not modified following: modified following adds a month-boundary rule that can instead roll backward. Check the convention required by your application before using it for contractual dates.

WORKDAY excludes Saturday and Sunday plus only the dates supplied in D2:D3. It does not download a holiday calendar, and the example list is not a complete jurisdictional calendar. Different weekends require a suitable custom-calendar function.

EDATE works with calendar months and can clamp a day to the destination month’s end. Use actual dates and whole-number month offsets. TEXT formats the answer as text; omit TEXT when further date calculations need a serial value.

Start Date (A)Months Ahead (B)Raw EDATE(A, B)Following Business Day
2026-01-046 months2026-07-04 (Saturday)2026-07-06 (Monday!)
2026-03-026 months2026-09-02 (Wednesday)2026-09-02 (Kept exact!)
2026-03-076 months2026-09-07 (listed holiday)2026-09-08 (Tuesday!)

Following working day using the supplied calendar

Formatted with TEXT(..., "yyyy-mm-dd") here so you can verify exact ISO dates at a glance; omit TEXT() when storing serial dates.

=TEXT(WORKDAY(EDATE(A2, B2) - 1, 1, $D$2:$D$3), "yyyy-mm-dd")

Preceding Business Day convention (roll weekends backward to Friday)

Add +1 day and step -1 workday: WORKDAY(EDATE(A2, B2) + 1, -1, $D$2:$D$3) rolls Saturday Jul 4 back to Thursday Jul 2 (when Friday Jul 3 is observed).

=TEXT(WORKDAY(EDATE(A2, B2) + 1, -1, $D$2:$D$3), "yyyy-mm-dd")

Try the example

Use the original values or change them to test your understanding.

Further reading