2014-02-01 4 views
0

У меня есть столбец полей даты, который содержит разные даты. Я хочу добавить 1 месяц к каждой дате.Как добавить месяц в каждое поле даты в столбце Excel 2013?

Так что, если мой столбец/строка следующая

A3: 1/2/2014 
A4: 1/4/2014 
A5: 1/10/2014 
A6: 1/15/2014 

Какая бы формула или метод я бегу изменит все к

A3: 2/2/2014 
A4: 2/4/2014 
A5: 2/10/2014 
A6: 2/15/2014 
+0

Если вы хотите сделать это программно, изучите его с помощью VBA, это довольно VB, специально предназначенный для приложений Office, что делает его приятным и легким. Чтобы начать работу, вы захотите проверить, как получить диапазон ваших ячеек в объекте, как перебирать его и как использовать Application.WorksheetFunctions, чтобы перезаписать значения каждой ячейки с обновленной датой, которую вы хотите. –

ответ

2

Это не будет делать то, что мне нужно это сделать хоть. Я хочу обновить существующие ячейки, чтобы увеличить дату в каждом из них. Я обновил свой вопрос, чтобы (надеюсь) сделать его более ясным. - Скотт 33 минут назад

Из комментария под удаляемого ответ (Джерри) (Поскольку я все еще могу видеть их: р), я предполагаю, что вы хотите использовать VBA. Если это так, то см. Это. Вам нужно использовать DateAdd()

Если вы проверили справку Excel, DateAdd возвращает вариант (дата), содержащий дату, в которую был добавлен указанный интервал времени.

Синтаксис

DateAdd (интервал, номер, дата)

Промежуток аргумент имеет следующие параметры:

Setting Description 
yyyy Year 
q  Quarter 
m  Month 
y  Day of year 
d  Day 
w  Weekday 
ww  Week 
h  Hour 
n  Minute 
s  Second 

Вставить это в модуле.

Sub Sample() 
    Dim ws As Worksheet 
    Dim lRow As Long, i As Long 

    '~~> Change this to the relevant sheet 
    Set ws = ThisWorkbook.Sheets("Sheet1") 

    With ws 
     lRow = .Range("A" & .Rows.Count).End(xlUp).Row 

     For i = 3 To lRow 
      .Range("A" & i).Value = DateAdd("m", 1, .Range("A" & i).Value) 
     Next i 
    End With 
End Sub 
+0

Я не знаком с VBA, поэтому, наверное, мне нужно выяснить, как реализовать эту функцию. При таком подходе, как вы определяете, к каким полям это относится? Вы выбираете, какие ячейки вы хотите повлиять, а затем каким-то образом применить к ним функцию? – Scott

+0

Вам нужно вставить код в модуль. Также мой код предполагает, что даты взяты из ячейки A3 и далее. –

4

Вы можете использовать функцию EDATE, которая добавляет несколько месяцев к дате даты.

EDATE(A1, 1) 

добавит один месяц к дате в ячейке A1.

+1

Другой ответ был удален, но я уже пробовал это. Если вы попытаетесь обновить одно и то же поле с результатом, excel предупредит вас о круговой ссылке. – Scott

+0

Почему бы вам не просто скопировать ячейки, содержащие даты в какую-либо другую часть рабочего листа, и использовать мою формулу в исходном месте? Поэтому, если ваши ячейки были A1 и A2, скопируйте их, скажите Z1 и Z2 и включите A1 = EDATE (Z1,1) и A2 = EDATE (Z2,2).В целом в Excel очень мало случаев, которые вы не можете обработать, перемещая некоторые данные и используя формулы. – mscoon

1

Поскольку в вашем примере все ваши даты в январе, это должно работать: введите 31 в какую-либо ячейку и скопируйте. Выберите даты и Вставить специальные ... Добавить. Простой, но большой недостаток заключается в том, что это работает только 7 месяцев в году!

+0

Я был бы признателен за обоснование для -1? если есть :-) – pnuts