The EOMONTH function is one of those little gems in Excel that can save you a lot of trouble. It’s a simple function that does just one thing: given a date, it returns the last day of a month.
This may seem a little silly — how hard can it be to figure out the last day of a month? — but it’s actually a bit tricky, since each month has a different numbers of days, and February changes in leap years.
Enter the EOMONTH function
EOMONTH takes two arguments: a start date, and months. Months represents the number of months to move in the future or past. So, for example, with May 12, 2017 in cell B5:

=EOMONTH(B5,0) returns May 31, 2017
=EOMONTH(B5,4) returns Sep 30, 2017
=EOMONTH(B5,-3) returns Feb 28, 2017
You can easily use EOMONTH to move through years as well:

=EOMONTH(B5,12) returns May 31, 2018
=EOMONTH(B5,36) returns May 31, 2020
=EOMONTH(B5,-24) returns May 31, 2015
You can also use EOMONTH to easily get the first day of the next month:
=EOMONTH(B5,0)+1 returns Jun 1, 2017
Notes on using EOMONTH
- Make sure you give EOMONTH a proper date to start. You can use the DATE function if you need to assemble a date from scratch.
- Make sure you apply date formatting to the result of EOMONTH, otherwise you may see just a big number.
- If you want to move to the same date in past or future months, use the EDATE function.
Example formulas built on EOMONTH
Building on EOMONTH’s simple utility, you can build all kinds of useful formulas. Here are a few examples to give you some inspiration:
- Sum by month
- Days in month
- Get last working day in month
- Calculate retirement date
- Get first day of previous month
More formulas
Want to learn more formulas? Need help with formulas?
We have more than 500 formulas examples, and high-quality video training if you like learning with a structured program.






