=A2+30 returns the date 30 days after the date in A2. Excel stores dates as numbers of days, so adding a number moves the date forward that many days. For months, which have different lengths, use =EDATE(A2,3): the same day, three months later.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Invoice date | Due (30 days) | Due (90 days) | Two weeks later |
| 2 | 2026-03-10 | 2026-04-09 | 2026-06-08 | 2026-03-24 |
| 3 | 2026-03-25 | 2026-04-24 | 2026-06-23 | 2026-04-08 |
| 4 | 2026-04-02 | 2026-05-02 | 2026-07-01 | 2026-04-16 |
| 5 | 2026-12-15 | 2027-01-14 | 2027-03-15 | 2026-12-29 |
An invoice dated 2026-03-10 is due 2026-04-09 at 30 days and 2026-06-08 at 90 days. The December invoice crosses into 2027 without any extra work. Subtract to go back in time: =A2-30 is 30 days earlier. For weeks, multiply: =A2+7*2 is two weeks later.
Add months with EDATE
"One month later" is not a fixed number of days, so +30 drifts: from February 1 it lands on March 3. EDATE(start_date, months) keeps the day of the month and changes the month. A negative number of months goes back.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Start | Months | Renews | Reminder |
| 2 | 2026-01-15 | 1 | 2026-02-15 | 2026-01-15 |
| 3 | 2026-02-01 | 3 | 2026-05-01 | 2026-04-01 |
| 4 | 2026-03-20 | 12 | 2027-03-20 | 2027-02-20 |
| 5 | 2026-11-05 | 6 | 2027-05-05 | 2027-04-05 |
The yearly plan that starts 2026-03-20 renews 2027-03-20, and the six-month plan from November renews 2027-05-05. Column D sends a reminder one month before each renewal. Change a number of months in column B to see the date move.
When the start day does not exist in the target month, EDATE uses the last day of that month. These are Excel's results:
=EDATE("2026-01-31", 1) 2026-02-28
=EDATE("2026-08-31", 1) 2026-09-30
=EDATE("2024-03-31", -1) 2024-02-29
Add years to a date
A year is 12 months, so =EDATE(A2,12*B2) adds B2 years. For warranties, contracts and anniversaries this keeps the same day and month.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Bought | Years | Warranty ends | With DATE |
| 2 | 2026-03-14 | 2 | 2028-03-14 | 2028-03-14 |
| 3 | 2025-07-01 | 5 | 2030-07-01 | 2030-07-01 |
| 4 | 2026-11-28 | 3 | 2029-11-28 | 2029-11-28 |
Both columns give 2028-03-14, 2030-07-01 and 2029-11-28. They differ on one date only: February 29. =DATE(2027,2,29) rolls over to 2027-03-01, while EDATE returns 2027-02-28.
Last day of the month with EOMONTH
EOMONTH(start_date, months) returns the last day of a month: 0 for the same month, 1 for the next, -1 for the previous. The first day of a month is the day after the end of the previous one, EOMONTH(A2,-1)+1.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Date | End of month | End of next month | First of month |
| 2 | 2026-02-10 | 2026-02-28 | 2026-03-31 | 2026-02-01 |
| 3 | 2024-02-10 | 2024-02-29 | 2024-03-31 | 2024-02-01 |
| 4 | 2026-12-31 | 2026-12-31 | 2027-01-31 | 2026-12-01 |
February 2026 ends on the 28th and February 2024 on the 29th. From 2026-12-31 the end of next month is 2027-01-31. EOMONTH is the formula for "payment due at the end of the month after the invoice", =EOMONTH(A2,1). For business days use WORKDAY: =WORKDAY(A2,10) is 10 working days after A2, skipping weekends (see NETWORKDAYS and WORKDAY).
Practice: renewal and month end
| A | B | C | |
|---|---|---|---|
| 1 | Start | Months | Renews |
| 2 | 2026-03-10 | 6 |
Your turn: In C2, return the date that is the number of months in B2 after the start date in A2.
| A | B | |
|---|---|---|
| 1 | Date | Month end |
| 2 | 2026-04-14 |
Your turn: In B2, return the last day of the month of the date in A2.
Common mistake: adding a month with DATE and MONTH+1
A formula like =DATE(YEAR(A2),MONTH(A2)+1,DAY(A2)) looks like "one month later" and is right most of the time. When the day does not exist in the next month, DATE does not stop at the month end: it rolls the extra days into the month after.
| A | B | C | |
|---|---|---|---|
| 1 | Date | MONTH+1 with DATE | End of next month |
| 2 | 2026-01-31 | 2026-03-03 | 2026-02-28 |
From January 31 the DATE formula returns 2026-03-03, because "February 31" is three days past February 28. EDATE returns 2026-02-28, and when the end of the month is what you want, EOMONTH says so directly. More on how DATE handles overflowing months and days: DATE function.
Frequently Asked Questions
How do I add days to a date in Excel?
Add the number: =A2+30 is 30 days after the date in A2, and =A2-30 is 30 days before. Excel stores dates as numbers of days, so plain addition works across months and years.
How do I add months to a date in Excel?
Use EDATE: =EDATE(A2,3) returns the same day three months later, and =EDATE(A2,-3) three months earlier. When that day does not exist, EDATE uses the last day of the month: =EDATE("2026-01-31",1) is 2026-02-28.
How do I get the last day of the month in Excel?
=EOMONTH(A2,0) returns the last day of A2's month. =EOMONTH(A2,1) is the end of next month, and =EOMONTH(A2,-1)+1 the first day of A2's month.
How do I add years to a date in Excel?
=EDATE(A2,12*5) adds five years. =DATE(YEAR(A2)+5,MONTH(A2),DAY(A2)) works too, but turns February 29 into March 1 in a year that is not a leap year, where EDATE gives February 28.
Why does adding days show a number instead of a date?
The result cell is formatted as General or Number, so the date shows as its serial number, such as 46126. Select it and choose Home > Number Format > Short Date.