EOMONTH: month boundaries without guessing the calendar
Month lengths change; report boundaries should not depend on a manually updated list of 28, 30 and 31-day months. EOMONTH gives you a dependable anchor.
Month lengths do not need a manually maintained 28/30/31-day table. An offset of 1 returns the end of the following month, not a fixed number of days after the start date. Adding one to a month-end gives the first day of the next month.
| Formula | Expected result / interpretation |
|---|---|
| =EOMONTH(A2,0) | 30 September 2026 |
| =EOMONTH(A2,-1)+1 | 1 September 2026 |
| =EOMONTH(A2,0)+1 | 1 October 2026 |
| =EOMONTH(DATE(2028,2,10),0) | 29 February 2028 |
| Input | Meaning |
|---|---|
| A2 | 12 September 2026 |
| Offset 0 | End of the same month |
| Offset 1 | End of the following month |
Put =DATE(2026,9,12) in A2 and format outputs as dates.
Generate month-end and next-month boundaries
Formula syntax
=EOMONTH(start_date, months)
What goes into it
start_date
Valid date value to start from.
months
Whole-month offset; 0 means the same month.
A quick example first
=EOMONTH(DATE(2026,9,12),0)
Returns the last day of September 2026.
=EOMONTH(A2,1)
Returns the last day of the month after A2.
Before you copy this into a real sheet
For transactions that include times, use >= the first day and < the first day of the next month. A <= month-end test includes midnight but can exclude the remainder of that last day. EOMONTH produces a numeric date serial; seeing a number usually means the cell needs date formatting. Confirm the input is a real date with ISNUMBER and use DATE rather than an ambiguous quoted date string in portable examples.
Useful habits
- Use 0 for the end of the current month.
- Add 1 to EOMONTH(A2,-1) to get the first day of A2’s month.
- Keep start_date as a true date value, not ambiguous text.
Where people get caught out
- Supplying text that looks like a date but is not parsed consistently.
- Forgetting that the result may display as a serial number if the cell is not date-formatted.
Other functions worth a look
A detail worth remembering
For timestamped transactions, use an inclusive start date and an exclusive first day of the next month. This avoids excluding the final afternoon of a reporting month.
Reference and examples
The examples above use small, invented datasets and English-language formula names. Check your Excel version and argument separator against the official Excel function reference if a formula behaves differently on your computer.