Date & Time

EDATE Function in Excel

Returns a date that is a specified number of months before or after a given date.

Syntax

  • =EDATE(start_date, months)

Arguments

  • start_date (required): The starting date
  • months (required): Months to add (negative for past)

Examples

  • =EDATE(TODAY(), 3) - Date 3 months from now - Result: 4/21/2026
  • =EDATE(A1, -6) - Date 6 months ago - Result: Past date
  • =EDATE(A1, 12) - Same date next year - Result: 1 year later

Excel EDATE function documentation

  • EDATE returns the date that is a specified number of months before or after a start date.
  • Syntax: =EDATE(start_date, months). Used for renewals, subscriptions, and contract terms.
  • Preserves day-of-month when possible — Jan 31 + 1 month adjusts to Feb last day.
  • Related: [EOMONTH](/functions/eomonth/), [DATE](/functions/date/), [DATEDIF](/functions/datedif/).

EDATE syntax and month arithmetic

  • months positive moves forward; negative moves backward.
  • Start from TODAY(): =EDATE(TODAY(), 12) for same day next year approximately.
  • Combine with [EOMONTH](/functions/eomonth/) when policy needs month-end not same day.
  • Serial result — apply Date number format.

Step-by-step: subscription renewal date

  • Step 1 — Signup date in A2.
  • Step 2 — Monthly renewal: =EDATE(A2, 1) then fill down row per billing cycle or use sequence.
  • Step 3 — Annual renewal: =EDATE(A2, 12).
  • Step 4 — Flag due this week: =EDATE(A2, months_since) between TODAY() and TODAY()+7.
  • Step 5 — Document month-end vs same-day policy for finance sign-off.

EDATE vs EOMONTH vs DATE month roll

  • EDATE — calendar month shift from anchor day.
  • EOMONTH — snap to month-end boundary.
  • DATE(Y, M+N, D) — manual roll with DATE overflow rules.
  • Lease schedules often mix EDATE for start dates and EOMONTH for period cutoffs.

Worked examples to copy

  • Three months out: =EDATE(TODAY(), 3).
  • Contract start + 24 months: =EDATE(B2, 24).
  • Prior quarter same day: =EDATE(TODAY(), -3).
  • Renewal list: =EDATE(A2, ROW(A1:A12)) spilled in M365 for monthly series.

People also ask

  • EDATE month-end Jan 31? — Feb result adjusts to Feb 28/29 (last day).
  • EDATE negative months? — Steps backward from start_date.
  • EDATE vs adding 30 days? — EDATE respects calendar months; +30 is fixed days.
  • EDATE #NUM!? — Invalid start_date or months argument non-numeric.

Common errors

  • Adjusts for month-end (Jan 31 + 1 month = Feb 28)
  • Returns serial number

Use cases

  • Subscription renewals
  • Payment schedules
  • Contract dates

Frequently asked questions

  • How does EDATE handle month-end dates? EDATE adjusts for shorter months. Jan 31 + 1 month = Feb 28 (or 29 in leap year). The result is always a valid date in the target month.
  • What is the difference between EDATE and adding months with DATE? EDATE handles month-end correctly. DATE(YEAR(A1),MONTH(A1)+1,DAY(A1)) can create invalid dates (Feb 31). EDATE always returns valid dates.
  • How do I add years with EDATE? Use months: =EDATE(A1, 12) adds 1 year, =EDATE(A1, 24) adds 2 years. Or use DATE: =DATE(YEAR(A1)+1, MONTH(A1), DAY(A1)).
  • Can EDATE go backwards? Yes! Use negative months: =EDATE(A1, -3) returns the date 3 months before A1. Useful for historical calculations.
  • How do I calculate age in months? Use DATEDIF: =DATEDIF(BirthDate, TODAY(), "M") for total months. EDATE is for adding months, not calculating differences.

Editorial review

  • Reviewed by Excel.Directory Editorial Team. Updated May 2026.

When to use EDATE

  • Subscription renewals — common Date & Time scenario for EDATE.
  • Payment schedules — common Date & Time scenario for EDATE.
  • Contract dates — common Date & Time scenario for EDATE.

EDATE in the Date & Time category

  • Browse all Date & Time functions at /categories/date-time/ for related formulas.
  • EDATE syntax: =EDATE(start_date, months)
  • start_date (required): The starting date
  • months (required): Months to add (negative for past)
  • Confirm EDATE arguments match the syntax shown above before filling down.
  • Lock table and range references with $ when copying formulas across rows or sheets.

Formula checklist before you copy down

  • Confirm EDATE arguments match the syntax shown above before filling down.
  • Lock table and range references with $ when copying formulas across rows or sheets.
  • If results look wrong, check for text stored as numbers and invisible spaces with TRIM.
  • Spot-check three known input rows manually against expected output.

Related Excel functions

  • EOMONTH (/functions/eomonth/): Returns the last day of the month, a specified number of months before or after a date.
  • DATE (/functions/date/): Creates a date from year, month, and day components.
  • MONTH (/functions/month/): Returns the month of a date as a number from 1 to 12.
  • YEAR (/functions/year/): Returns the year of a date as a four-digit number.

Errors to watch for

  • Adjusts for month-end (Jan 31 + 1 month = Feb 28) — review causes on linked error pages in the directory.
  • Returns serial number — review causes on linked error pages in the directory.

Copy-paste audit workflow

  • Enter EDATE on three test rows with known expected output documented on a QA tab.
  • Fill down only after absolute references are locked on lookup tables and rate tables.
  • Compare against manual calculation or a calculator for financial and statistical functions.
  • Search this directory for comparison guides when choosing between similar functions in the same category.

EDATE worked examples to copy

  • =EDATE(TODAY(), 3) — Date 3 months from now. Expected result: 4/21/2026.
  • =EDATE(A1, -6) — Date 6 months ago. Expected result: Past date.
  • =EDATE(A1, 12) — Same date next year. Expected result: 1 year later.

EDATE reference summary for crawlers and offline review

  • EDATE belongs to the Date & Time category in Excel. Returns a date that is a specified number of months before or after a given date.
  • Full syntax: =EDATE(start_date, months). Open /functions/edate/ for parameters, FAQs, and related pages.
  • Common mistakes: Adjusts for month-end (Jan 31 + 1 month = Feb 28); Returns serial number
  • Pair this function with comparison guides when another Excel formula might fit the same task better.
  • Review fix-excel-formula-errors when unexpected errors appear after upgrading Excel or sharing across locales.