EDATE Function
Shifts a date by a number of months.
Syntax
Parameters
| Parameter | Description | Required |
|---|---|---|
| start_date | The starting date serial. | Required |
| months | The number of months to move. Positive moves forward, negative moves backward. The value is truncated to an integer. | Required |
Basic Example
Three months after a mid-January date
=EDATE(DATE(2024, 1, 15), 3)Jan 15 plus 3 months is Apr 15 2024 (serial 45396).
Advanced Examples
Example 1: End-of-month rollover in a leap year
Jan 31 plus one monthFebruary has no 31st, so it rolls to the last day
=EDATE(DATE(2024, 1, 31), 1)Example 2: Moving backward
Three months before January 15A negative months value goes to the past
=EDATE(DATE(2024, 1, 15), -3)How EDATE Works
EDATE adds the specified number of months to start_date. It keeps the same day number; if that day is invalid in the resulting month (for example the 31st of February), Excel returns the last day of that month. The result is a date serial.
Important Notes & Limitations
The day of month is preserved but rolls to the last day if the target month is shorter.
The months argument is truncated to an integer (1.9 becomes 1).
The result is a serial number and needs a date format to be readable.
Common Errors & Fixes
#VALUE!The start_date is not a valid date serial.Fix: Pass a real date value or DATE(...) expression.
Unexpected end-of-month dateThe original day does not exist in the target month.Fix: This is expected; EDATE returns the last valid day of that month.
Download Practice File
EDATE
edatePractice EDATE with Real Data
Download a sample CSV file with pre-populated data and practice exercises for the EDATE function. Works in both Excel and Google Sheets.
File format: CSV (comma-separated values) - opens in Excel, Google Sheets, and all spreadsheet apps