The EDATE guide
=EDATE(B2, C2) gives the date C2 months after B2, on the same day of the month. When that day doesn't exist, EDATE uses the last day of the month: January 31 plus one month is February 28, or 29 in a leap year.
The syntax
=EDATE(start_date, months)
Months can be negative: =EDATE(B2, -1) is a month earlier. The result is a date serial, so give the cell a date format if it shows a number.
Why not add 30 days?
Months are 28 to 31 days long. =B2+C2*30 drifts a few days for every month, so a 12-month contract that starts on 1/15/2026 comes out on 1/10/2027.
Why not DATE?
=DATE(YEAR(B2), MONTH(B2)+C2, DAY(B2)) looks right and is right most days. On 1/31/2026 plus one month it asks for February 31, and Excel rolls on to March 3. EDATE stops at the last day of the month instead.
EDATE or EOMONTH?
EDATE keeps the day of the month: the 15th stays the 15th. EOMONTH(B2, C2) always returns the last day of the month, which suits "due at the end of the month after" in the month-end challenge.
The day before
A date minus 1 is the day before. A contract that renews on 2/28/2026 covers up to 2/27/2026: =D2-1.
Common mistakes
- Typing the number of months.
EDATE(B2, 12)is wrong for every contract that isn't 12 months. - EOMONTH for a mid-month start. It moves the date to the month end.
- A result that shows as a number. Format the cell as a date.
FAQ
- How do I add months to a date in Excel?
- Use =EDATE(date, months). It keeps the day of the month, and uses the last day when that day doesn't exist in the new month.
- What does EDATE do with January 31?
- EDATE("1/31/2026",1) returns 2/28/2026: February has no 31st, so it uses the last day of February.
- What is the difference between EDATE and EOMONTH?
- EDATE keeps the day of the month. EOMONTH always returns the last day of the month that many months away.
- How do I subtract months from a date?
- Give EDATE a negative number: =EDATE(A2,-3) is three months earlier.






























































