EDATE moves a date forward or back by a whole number of months, and lands on a real date every time.
Syntax
EDATE(start_date, months)
When to use it
Renewal dates, payment schedules, the end of a trial, anything that repeats monthly.
What trips people up
Adding thirty days is not the same as adding a month, which is exactly why EDATE exists. It also handles the tricky cases sensibly: one month on from the 31st of January is the 28th of February, not the 3rd of March. The answer may appear as a number until the cell is formatted as a date.
Set by your computer's language, not by the file. A frequent cause of a correct-looking formula being rejected.
Excel version
XLOOKUP, IFS, TEXTBEFORE and TEXTJOIN need Microsoft 365 or 2021; older versions return #NAME? instead. Choosing the older one switches every walkthrough to a formula that works there.