EOMONTH - Find a calendar month's final date
Create month-end reporting boundaries and next-month starts without hardcoding 28, 30, or 31 days.
By the end, you can
- Move by calendar months and return their final dates.
- Handle different month lengths automatically.
- Distinguish a calendar month end from a last working date.
Before you start: Understand DATE values and WORKDAY for a business-calendar adjustment.
In this lesson
A stable way to define a reporting boundary
EOMONTH returns the last calendar date of a month at a chosen offset from a start date. Finance can build billing-period ends or sales reporting cutoffs without assuming every month has 30 days. The day within the start month does not become the result's day; the function always returns that target month's end.
Syntax and arguments
=EOMONTH(start_date, months)Zero months selects the start month. Positive offsets choose later months and negative offsets earlier months.
| Argument | Purpose | Example |
|---|---|---|
start_dateRequired | A valid date identifying the starting month. | A2 |
monthsRequired | Calendar-month offset; fractional values are truncated. | B2 |
Reporting period end dates
31-Oct-2026| A | B | C | |
|---|---|---|---|
| 1 | Start date | Month offset | Calendar month end |
| 2 | 15-Oct-2026 | 0 | 31-Oct-2026 |
| 3 | 15-Oct-2026 | 1 | 30-Nov-2026 |
| 4 | 15-Oct-2026 | -1 | 30-Sep-2026 |
=EOMONTH(A2,B2)An offset of zero from 15 October selects the final calendar date of October: the 31st.
- Use a date in the relevant starting month.
- Choose zero, positive, or negative months for the reporting period.
- Format the result as a date and inspect the different month lengths.
- Decide separately whether a company closure or weekend should adjust the operational deadline.
Next-month starts, leap years, and a workday end
=EOMONTH(A2,0)+1The day after 31 October is 1 November.
=EOMONTH(DATE(2024,2,10),0)The last date of February 2024 is its 29th, without a hardcoded month length.
=WORKDAY(EOMONTH(A2,0)+1,-1)31-Oct-2026 is Saturday. Moving back one workday from 1 November returns Friday 30 October.
Calendar months and compatibility
- An offset is measured in months, not days. Adding 30 to a date is not an equivalent month-end calculation.
- The output is the last calendar day and can be a weekend or holiday. WORKDAY or an appropriate INTL rule can implement a separate work-calendar policy.
- Invalid dates or an offset outside Excel's valid date range can produce errors. Construct dates with DATE instead of relying on ambiguous text.
- EOMONTH is available in older/current Excel. Apply a date format to its serial result rather than confusing a displayed number with an error.
Common mistakes and useful tips
EOMONTH is not implemented in the workspace and no existing challenge matches these period calculations. The examples teach Excel month boundaries without adding engine features.
Check your understanding
Choose an answer for instant feedback. You can try again; answers stay only on this page.