Add days to a date in Excel: days, weeks, months, working days
Adding days to a date is plain addition, because a date is a day count. That one fact also tells you where addition stops working: a month is not thirty days and a year is not 365, so months and years need EDATE. Here is every form we use, in versions that open the same in Excel 2016, Google Sheets, LibreOffice and Numbers.
Contents
Add days: just add
=A2 + 30 thirty days after A2
=A2 - 7 seven days before
=TODAY() + 14 a fortnight from today
=A2 + B3 B3 holds the number of days A date in a spreadsheet is a number — the count of days since the end of 1899. 1 Sep 2026
is 46266, the next day is 46267. So “thirty days later” is + 30, and nothing else is
needed. There is no DATEADD function in a spreadsheet, and people look for one because
other tools have it.
One thing to fix afterwards: if the result shows as a number like 46296, the cell is formatted as General. Format it as a date and the number becomes a date again — the value never changed, only the costume.
Add weeks: multiply by seven
=A2 + 7 one week later
=A2 + 7*2 two weeks later
=A2 + 7*$B$3 B3 weeks later, so you can change B3 and not the formula Keep the 7* visible rather than writing +14. Six months from now, 7*2 still says
“two weeks” and 14 says nothing.
Add months: EDATE, not + 30
=EDATE(A2, 3) three months later
=EDATE(A2, -1) one month earlier
=EDATE(A2, 12) a year later
=EDATE(A2, 12*5) five years later A month is 28 to 31 days, so A2 + 30 is not “a month later”. Copy it down a column of
monthly rows and it drifts off the calendar: start on the 31st of January and plain
addition walks you to the 2nd of March, then the 1st of April, then nowhere near the
month end.
EDATE keeps the day of the month and clamps when it has to. EDATE("31 Jan", 1) is
28 February, not 3 March — which is what a person means by “the same date next month”.
Add years
=EDATE(A2, 12*3) three years later
=DATE(YEAR(A2)+3, MONTH(A2), DAY(A2)) the same, spelled out Both land on the same day of the month every time, and both handle leap years. A2 + 365
does not: it slides a day every fourth year, and the slide is invisible until somebody
notices a renewal date is wrong.
Add working days, skipping weekends
=WORKDAY(A2, 10) ten working days after A2
=WORKDAY(A2, 10, hols) the same, skipping a named range of holidays
=WORKDAY(A2, -5) five working days earlier
=WORKDAY.INTL(A2, 10, 7) weekend is Friday+Saturday instead of Sat+Sun WORKDAY counts Monday to Friday and skips the rest. The holiday argument takes a range
of dates — keep it on a Setup sheet as a named range you can edit for your own country,
because no function knows your public holidays.
WORKDAY.INTL exists in Excel 2010+ and in Google Sheets, and its third argument picks
which days count as the weekend. If the file has to open in older Excel or in Numbers,
stay with plain WORKDAY.
Due dates: the form every invoice needs
=IF(A2="", "", A2 + $B$3) B3 = terms in days (14, 30, 45, 60)
=IF(A2="", "", EDATE(A2, $B$3)) B3 = terms in months
=IF(A2="", "", WORKDAY(A2, $B$3)) B3 = terms in working days The IF on the empty cell is not decoration. An empty cell behaves as 0 in arithmetic,
"" + 30 is 30, and 30 formatted as a date is 30 January 1900 — which is how a blank row
in an invoice tracker ends up looking three lifetimes overdue, in red, every time you open
the file.
When the dates are text
Arithmetic on a date returns #VALUE!, or nothing happens at all, when the cell only looks
like a date. The giveaway is alignment: a real date sits right in the cell, text sits left.
=ISNUMBER(A2) TRUE for a real date
=DATEVALUE(A2) text in the sheet's own locale format
=DATE(RIGHT(A2,4), MID(A2,4,2), LEFT(A2,2)) rebuild from dd/mm/yyyy text This is the usual state of a column pasted out of a bank export or a web page. Repair the column once, then add your days.
The traps worth knowing
Never build a date from text inside a formula. "1/9/2026" is January in one country
and September in another; DATE(2026, 9, 1) has no locale and means the same everywhere.
NOW() carries the time, TODAY() does not. A2 + 7 <= NOW() is true for a date
seven days ago from one second after midnight. Compare whole days with TODAY(), or with
INT(NOW()).
Keep “as of” in a cell. Write =TODAY() once, in C3, and point formulas at $C$3.
Then you can type a date into C3 to see next week’s state, the file recalculates the same
in every app, and a test can pin the date instead of waiting for tomorrow.
The rest of the date arithmetic
Days between two dates, the first and last day of a month, totals by month, weekday names, quarters, week numbers and a status chain from a due date are all the same model applied differently — they are in Excel date formulas. Times are the other half of the same number: a time is a fraction of a day, and that is hours between two times.