EOMONTH

EOMONTH(start_date, months)

Returns the date serial number of the last day of a month before or after a date.

start_dateThe start date.
monthsThe number of months before or after the "start_date".

REMARKS
* This function does not spill automatically when "start_date" refers to multiple cells.
* This function can be used to calculate maturity dates or due dates that fall on the same day on the month as the date of issue.
* If "start_date" is a text string, there are lots of different date formats that will be recognised.
* If "start_date" is not a valid date, then #VALUE! is returned.
* If "start_date" plus "months" yields an invalid date, then #NUM! is returned.
* If "months" is not an integer, it is truncated.
* If "months" > 0, then a date in the future is returned.
* If "months" > 12, then additional years are added on.
* If "months" < 0, then a date in the past is returned.
* If "months" = 0, then the end of the "start_date" month is returned.
* If "months" = 1, then the end of the next month is returned.
* If "months" = -1, then the end of the previous month is returned.
* If "months" is left blank, then #N/A is returned.
* If no arguments are submitted, then #NA! is returned
* You can use the DATE function to return the date serial number given a YEAR, MONTH, DAY.
* You can use the DATEVALUE function to return the date serial number for a date in text format.
* You can use the EDATE function to return the date serial number that is a given number of months before or after a date.
* You can use the TEXT function to return a number with a particular format.
* For the Microsoft documentation refer to support.microsoft.com

 A
1=EOMONTH("01/07/2024", 0) = 45504
2=EOMONTH("7 Jul 2024", 0) = 31 Jul 2024
3=EOMONTH("8 Jul 2024", 1) = 31 Aug 2024
4=EOMONTH("9 Jul 2024", 1) = 31 Aug 2024
5=EOMONTH("10 Jan 2024", - 1) = 31 Dec 2023
6=EOMONTH("30 Jan 2024", 3) = 30 Apr 2024
7=EOMONTH("9 Jan 2024", 24) = 31 Jan 2026
8=EOMONTH("9 Jan 2025", -24) = 31 Jan 2023
9=EOMONTH(DATEVALUE("9 Dec 2024"), 2) = 28 Feb 2025
10=TEXT(EOMONTH("2024/01/30", 3), "ddd-mm yyyy") = Tue-04 2024
11=EOMONTH("2024/20/20", 3) = #VALUE!

1 - What is the date serial number for the last day of the month, given the date "01/07/2024".
2 - What is the date for the last day of the month, given the date "7 Jul 2024". This cell has been formatted with the number format "dd mmm yyyy".
3 - What is the date for the last day of the month, given the date "8 Jul 2024", 1 month after.
4 - What is the date for the last day of the month, given the date "9 Jul 2024", 1 month after.
5 - What is the date for the last day of the month, given the date "10 Jul 2024", 1 month before.
6 - What is the date for the last day of the month, given the date "30 Jan 2024", 3 months after.
7 - What is the date for the last day of the month, given the date "9 Jan 2024", 24 months after.
8 - What is the date for the last day of the month, given the date "9 Jan 2024", 24 months before.
9 - What is the date for the last day of the month, given the date "9 Dec 2024" provided as a date serial number, 2 months after.
10 - What is the date for the last day of the month, given the date "2024/01/30", 3 months after and then displayed with the custom date format "ddd-mm yyyy".
11 - If a date is not valid, then #VALUE! is returned.

© 2026 Better Solutions Limited. All Rights Reserved. © 2026 Better Solutions Limited Top