# How to calculate an end date from a start date and a term in months in Excel

Add the term with EDATE and subtract a day: `=EDATE(B2,C2)-1`. A 12-month term from January 1 ends December 31.

**Excel:** `=EDATE(B2,C2)-1` (Every current version)

**Google Sheets:** the same formula works.

## Example

Sample data (row 1 is the header):

| A | B | C | D |
| --- | --- | --- | --- |
| Contract | Start | Term (months) | End |
| Office lease | 2026-01-01 | 12 |  |
| Warehouse lease | 2026-03-15 | 24 |  |
| Support plan | 2026-02-01 | 6 |  |
| Software license | 2026-09-30 | 6 |  |
| Maintenance | 2026-07-01 | 36 |  |

Formula in D2, filled to D6: `=EDATE(B2,C2)-1`

Result: 12/31/2026; 3/14/2028; 7/31/2026; 3/29/2027; 6/30/2029

## How it works

EDATE moves the start date forward by the term and lands on the anniversary, which is the first day of the next term. Subtracting 1 gives the last day of this one: a 24-month lease from March 15 ends on March 14.

## Other ways

- `=EOMONTH(B2,C2-1)`: Ends on a month end, for contracts that always run to the end of a month. (Mid-month starts end at a month end.)
- `=DATE(YEAR(B2),MONTH(B2)+C2,DAY(B2)-1)`: Builds the date from parts. The same here, but for starts on the 29th to 31st it can roll into the next month.

## Common mistakes

- `=EDATE(B2,C2)` without the -1 gives the renewal date, a day after the contract ends.
- Adding 30 days per month (`B2+30*C2`) drifts by several days over a long term.

## Questions

**How do I calculate the end date for a term in years?**

`=EDATE(B2,C2*12)-1`.

**How do I find the days left on a contract?**

`=D2-TODAY()`, or with an as-of date in a cell, `=D2-$F$1`.

Every formula and result on this page was checked by running it in the Spreadsheet Practice formula engine on 2026-10-30.

Source: https://spreadsheetpractice.com/formulas/calculate-an-end-date-from-a-term-in-months
