In Excel: use =EOMONTH(start_date, months) — it returns the last day of a month n months away, handling leap years and 30/31-day months for you.
On this page8
Syntax
Arguments
| Argument | required / optional | Description |
|---|---|---|
start_date | required | The reference date. |
months | required | Months to shift before taking the month end. 0 is the current month, -1 the previous. |
Related functions
Negative values subtract. Month steps clamp the day, so 31 Jan + 1 month is 28 Feb.
Weekday: Saturday
Need it as an auditable file?
Ships inside the linked template — formula-driven, unlocked, audit-ready.
What this does
EOMONTH returns the last day of the month a given number of months from a date. Passing 0 gives the end of the current month, -1 the end of the previous, 1 the end of the next. It is the correct way to build month-end reporting periods, payment terms and accrual dates, because it knows February has 28 days except when it has 29 — logic that hand-rolled date arithmetic gets wrong every four years. Pairing it with a +1 gives the first day of a month, which is the other half of a period boundary. Most people learn this as a sequence of clicks and forget it by next week; learning it as a pattern instead is what lets you apply it to the next, slightly different version of the problem without starting from scratch. That is the difference this page is trying to make. For “end of month formula excel”, the reliable version is a short checking loop, not just the first command that appears to work. Run it on a deliberately small range first, watch how the affected formula change, and only then apply the same setup to the full sheet. When a formula is involved, keep the inputs labelled beside it, reference cells instead of typing values, and apply number formatting only after the result checks out. That is what makes a calculation you can defend to a CFO or an auditor useful in real work: repeatable, auditable, and not dependent on memory or luck.
A worked example
The end of the current month for a reporting cut-off: =EOMONTH(TODAY(), 0). The first day of the current month: =EOMONTH(TODAY(), -1)+1. Net-30 terms landing on a month end: =EOMONTH(A2, 1). Building twelve month-end dates down a column: =EOMONTH($A$2, ROW()-1). EOMONTH gets month ends right on the leap year that hand-rolled date arithmetic quietly gets wrong. If there is any chance you will reuse this, drop it into a small template tab right now: a labelled input area on the left and the formula beside it, checked once against the tool above. Next time the same question comes up, the answer is a single paste away instead of a rebuild from memory.
In Google Sheets
Everything above works in Google Sheets too. Excel and Sheets share the formula syntax used here; only the surrounding menus are arranged differently. That portability is deliberate — learn it once and it follows you between the two tools and across Windows and Mac. The aim was to get you unstuck fast and leave you a little more capable than a copy-paste would. The answer is at the top, the tool proves it, and the detail above shows why it holds — so the next time a colleague asks, you can answer without reaching for search. If you take one thing from this page on “end of month formula excel”, make it the habit rather than the keystrokes: set the problem up with labelled inputs, reference those cells, and let Excel do the recomputing. Bookmark the page for the syntax, but do the example once in a blank sheet and check it against the tool above — five minutes of hands-on practice fixes the method in memory far better than re-reading, and it surfaces the small snags while they are still harmless. After that the technique is genuinely yours: faster than searching for it again, and reliable enough to drop into work that other people depend on.
Common mistakes
- Hand-rolling month ends with DATE and a day count, which breaks on February and on 30-day months.
- Forgetting the second argument, which is required and has no default.
- Leaving the result unformatted, so it shows a serial number.
Frequently asked questions
How do I get the last day of the current month?
=EOMONTH(TODAY(), 0). For the first day, =EOMONTH(TODAY(), -1)+1.
What is the difference between EOMONTH and EDATE?
EDATE keeps the same day number n months away; EOMONTH always returns the last day of that month.
Does EOMONTH handle leap years?
Yes — that is much of the point. February returns the 28th or 29th correctly without any special case.
Other ways people ask this
On the way here you may have searched this as “excel formula for end of month” and “month end formula in excel” — it is all the same task, and this page is the single, complete answer to it.
Why do people search for this in so many different ways?
Because the same task has many names. “excel formula for end of month”, “month end formula in excel” all point at the one operation explained on this page, which is why they all lead here.