EOMONTH Excel Formula

“eomonth excel formula” comes up constantly, so this page leads with the exact answer, gives you a tool to try it on your own numbers, and only then explains the detail. Everything works in Excel on Windows and Mac and maps almost one-to-one to Google Sheets. Copy the answer above and get back to work, or read on to turn a one-off fix into something you never have to look up again.

Exact answer

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

=EOMONTH(start_date, months)

Arguments

Argumentrequired / optionalDescription
start_daterequiredThe reference date.
monthsrequiredMonths to shift before taking the month end. 0 is the current month, -1 the previous.

Related functions

EDATEDATEWORKDAY
ƒxAdd or Subtract DatesLive

Negative values subtract. Month steps clamp the day, so 31 Jan + 1 month is 28 Feb.

Resulting date
2026-02-28

Weekday: Saturday

End of that month
2026-02-28
=EDATE(A2,B2) · =EOMONTH(A2,0)
Ctrl+CthenCtrl+Shift+V+Cthen+Ctrl+VPaste values · WindowsMac

Need it as an auditable file?

Ships inside the linked template — formula-driven, unlocked, audit-ready.

View template

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. The difference between a quick fix and a sheet you can trust is the extra minute you spend validating “eomonth excel formula”. Start on a copy or a tiny sample, keep the affected formula visible, and compare the result with the tool above before you touch the real workbook. 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. The point is a calculation you can defend to a CFO or an auditor, but the practical win is that someone else can open the file and understand what happened without asking you.

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. One habit worth forming early: name the cells that hold your inputs, so the formula reads in plain language instead of a string of cell addresses. A reviewer — or you in three months — can then follow the logic without decoding what B7 and D2 were supposed to mean, which is most of what makes a sheet maintainable.

In Google Sheets

If you are in Google Sheets rather than Excel, the good news is that the formula shown here is identical and the workflow barely changes — menus sit across the top instead of in a ribbon, and a few function names differ slightly, but anything you build here moves across with little or no rework. Nothing on this page is behind a login: the tool runs entirely in your browser, the formula is shown in full with one-click copy, and the steps work the same on Windows and Mac. That is the whole promise here — the exact answer, a way to prove it on your own numbers, and just enough context to make it stick. If you take one thing from this page on “eomonth excel formula”, 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.