I’m just going to report a general error in both the EDATE() and EOMONTH() functions.
EDATE(date,N) should return the same day of the month as in the original date. Or, if the day of the month would be greater than the number of days in the resulting month, it reverts to returning the end date of that month.
EOMONTH(date,0) should return the last day of the month.
The following functions may help test the results:
IF( DAY(DATE(YEAR(date),MONTH(date)+n,DAY(date)))<>DAY(date), EOMONTH(date,n), DATE(YEAR(date),MONTH(date)+n,DAY(date)) )
But, if EOMONTH isn’t working, the above won’t work, so replace EOMONTH with: