This seems like an obvious question.
I have a date column, and I want to create a formula to increase it by one month for each column.
10/2013, 11/2013, 12/2013, 1/2014, 2/2014, ...
How do you add one month to a date?
Super User is a question and answer site for computer enthusiasts and power users. It only takes a minute to sign up.
Sign up to join this communitySet A1=2014-01-31 Then the result using =DATE(YEAR(A1), MONTH(A1)+1, DAY(A1)) will be 2014-03-03, thus skipping February.
Short months cause EDATE to drop days for successive months. E.g. =EDATE(DATE(2014,1,31),1) does produce 2014-02-28, but applying it again results in 2014-03-28, which is not the last day in March.
Set the day to zero, and increment months, while being one month ahead. E.g. To start in January use DATE(2014,2,0) => 2014-01-31 then DATE(2014,3,0) => 2014-02-28, then DATE(2014,4,0) -> 2014-03-31 as one would expect by logically following the last day of each month.
Adjustments can be made if you want the last working day in the month, or 30 day increments while not skipping months, etc. Depends on the objective.
edate
worked for me without the problem you mention (Version: 4.2.7.2)
Jan 14, 2015 at 23:01
=edate(a1;1)
edate
returns the date that is the specified number of months after or before the specified date. As given in reference: Date Arithmetic, this adds one to the month:
=DATE(YEAR(A1), MONTH(A1)+1, DAY(A1))
Using LibreOffice Version: 6.2.8.2 (x64)
Row Formula Result
A11 +DATE(2020,3,1) 03/01/20
A12 +DAYSINMONTH(A11) + A11 04/01/20
A13 +DAYSINMONTH(A12) + A12 05/01/20
...
A190 +DAYSINMONTH(A189) + A189 02/01/35
I copied the formula cell in row A12, to a mass select from A13 to a190, and pasted. The result is what I expected.
I think you may need to use labels as dates are stored just as numbers which are then displayed in a format you choose. To add a month you'll need a complex calculation to determine how many days to take you to the next month. Hope I'm wrong and someone has an answer.
FWIW this is the solution I used where the month and year matters:
A1=DATE(2016,1,1)
A2=EOMONTH(A1,0)+1
First row cell to set the start date as a date object. Following cells take the previous cell, get the end of the month, then add a day (A2 = 2016/01/31 + 1
). Works for both LibreOffice Calc and Google Spreadsheets.
For year, month, day incrementing by one month, same day of month (like last day accounting for leap years):
A1 "DATE" # Label of column
A2 "=DATE(2011, 2, 0)"
A3 "=EDATE(A$2,COUNTA(A$2))"
A4 "=EDATE(A$2,COUNTA(A$2:A3))"
Then drag A4 down as far as you like. Produces this output:
01/31/11
02/28/11
03/31/11
...
02/29/12
03/31/12
I used this...
A1 =(01/01/2022) <-- Start Date A2 =(DAYSINMONTH(A1)+A1) <-- next month A3 =(DAYSINMONTH(A1*x)+A1) <-- skips ahead x number of months