Dates function

EOMONTH

The last day of a month.

Purpose

Find the last day of a month, forwards or backwards

Returns

A date: the month end you asked for

Syntax

=EOMONTH(date, months)

ArgumentRequiredWhat goes here
dateRequiredA date inside the month you are starting from.
monthsRequired0 for this month's end, 1 for next month's, -1 for last month's.

How to use EOMONTH

EOMONTH takes a date and a number of months to move, then returns the last day of the month it lands in. Nought means the month the date is already in.

It handles the different month lengths and leap years without being told, which is the reason to use it rather than building the date by hand.

The reason it exists in an accounting workbook is payment terms. "End of month following invoice" is one of the commonest terms there is, and it is EOMONTH with a 1.

Negative numbers go backwards, which is how you reach the prior period end for a comparative.

Examples

Every result below is worked out by the same evaluator that marks your answers, on the sheet shown here.

Receivables ageing — October.xlsxSheet1
A receivables schedule with its reporting date above the data, the layout a real ageing uses
ABCDE
1Reporting date2026-10-31
2
3InvoiceInvoice dateTerms (days)AmountCustomer
4INV-90012026-07-14301200Calder Utilities
5INV-90022026-08-2930640Brightwell Paper
6INV-90032026-09-03453100Meridian Freight
7INV-90042026-09-3014455Thornbury Print
8INV-90052026-10-12302080Calder Utilities
9INV-90062026-10-2760725Ashgrove Catering
FormulaResult
=EOMONTH(B4,0)The end of the month the invoice is in.2026-07-31
=EOMONTH(B4,1)End of the month following. Written once, and correct for a January invoice and a February one alike.2026-08-31
=EOMONTH(B1,-1)Backwards a month, for the prior period end a comparative column reports against.2026-09-30
=DAYS(B1,EOMONTH(B6,1))Days past due, where the terms are end of month following. Nought means it falls due on the very day the schedule is drawn up. A positive number would be overdue and a negative one not yet due.0

Notes

  • EOMONTH always lands on a month end. To keep the same day of the month, use EDATE.
  • The months argument can be any whole number, so EOMONTH(date,12) is the same month end a year out.
Practise EOMONTH in Unit 26

A reference tells you what it does. A unit makes you use it.