Skip to content
getgriddy.ai/blog/how-to-use-eomonth-in-excel
Excel

How to Use EOMONTH in Excel

EOMONTH returns the last day of a month before or after a date. Learn the syntax, finance examples, and common date mistakes.

·5 min read

Reviewed by Griddy

Updated for current Excel and Google Sheets workflows, with examples chosen to map back to real spreadsheet tasks rather than abstract formula syntax.

EOMONTH returns the last day of a month based on a starting date and a month offset. Use it when reports, invoices, budgets, accruals, or payment schedules need a true month-end date instead of a manually typed cutoff.

It is especially useful in finance sheets because month lengths change. February, leap years, and 30-day months all work correctly when the date logic is handled by Excel.

The syntax

fx
=EOMONTH(start_date, months)
  • start_date — the date Excel starts from
  • months — how many months to move before returning the month-end date

Use 0 for the end of the same month, 1 for the end of next month, and -1 for the end of the prior month.

Basic example

If A2 contains 5/14/2026 and you want the month-end date for that same month:

fx
=EOMONTH(A2, 0)

Excel returns 5/31/2026.

If you want the end of the next month:

fx
=EOMONTH(A2, 1)

Excel returns 6/30/2026.

Step-by-step reporting cutoff example

Say you maintain a small business budget template and each month needs a reporting cutoff date. The transaction date is in A2, and the budget month-end should appear in B2.

Step 1. Confirm A2 is a real Excel date, not text.

Step 2. In B2, enter:

fx
=EOMONTH(A2, 0)

Step 3. Format B2 as a date.

Step 4. Fill the formula down for the rest of the transaction list.

Now every transaction rolls to the correct month-end date, which makes pivot tables, monthly summaries, and accrual schedules easier to audit.

Use EOMONTH for invoice due dates

EOMONTH is also useful when invoices are due at the end of a month.

If the invoice date is in A2 and payment is due at the end of the following month:

fx
=EOMONTH(A2, 1)

That pattern works well in an invoice template when clients pay on month-end terms instead of net 15 or net 30 terms.

TIP

If the due date should be the first day of the next month, use =EOMONTH(A2, 0)+1.

Common EOMONTH mistakes

MistakeWhat happensFix
Typing the cutoff date manuallyMonth lengths and leap years can be wrongUse EOMONTH from a source date
Using text datesFormula returns #VALUE! or an unexpected resultConvert the value to a real date
Forgetting to format the result as a dateYou see a serial number like 46203Apply a date format
Using 30 to mean one monthResults drift across monthsUse the months argument instead

EOMONTH vs EDATE

EOMONTH returns the last day of a month.

EDATE returns the same day-of-month after adding or subtracting months.

If A2 is 5/14/2026, =EDATE(A2, 1) returns 6/14/2026, while =EOMONTH(A2, 1) returns 6/30/2026.

Use EOMONTH for month-end cutoffs, reporting periods, billing cycles, and budget close dates. Use EDATE for renewal dates, anniversary dates, and schedule dates that should keep the same day of the month.

The Griddy way

Month-end formulas get annoying when the sheet also needs invoice terms, overdue flags, or budget periods that depend on several columns.

"Create a month-end cutoff date from each transaction date, then group expenses by that cutoff month"

Griddy can add the EOMONTH formula, format the date column, and connect it to summaries in your budget or expense tracker.

Skip the manual work

Describe it. Griddy does it.

Instead of writing this formula yourself, just tell Griddy what you need in plain English. Works in Excel and Google Sheets.