Moving by whole months
Adding 30 to a date doesn't give "one month later", because months have different lengths. Two functions handle month maths properly:
=EDATE(start_date, months)returns the same day of the month, months later (or earlier, with a negative number). If that day doesn't exist, it uses the last day of the month: one month after January 31 is February 28.=EOMONTH(start_date, months)returns the last day of the month, months away. Use 0 for the end of the same month.
Handy patterns
| You want | Formula |
|---|---|
| Contract end, 12 months after the start | =EDATE(A2, 12) |
| Last day of this month | =EOMONTH(A2, 0) |
| Payment due at the end of next month | =EOMONTH(A2, 1) |
| First day of this month | =EOMONTH(A2, -1)+1 |
| Days in this month | =DAY(EOMONTH(A2, 0)) |