2016-09-08 2 views
1

Я пытаюсь рассчитать дату 12 месяцев назад с определенной даты ввода.Рассчитать дату 12 месяцев назад с определенной даты

Пример:

В Cell A5 пользовательский ввод дата (дд/мм/год), а в ячейке A7 я имею следующую формулу:

=MONTH(A5)-12 

Но эту формулу не работает, и я не знаю, как получить дату 12 месяцев назад. Любой вопрос в комментариях.

ответ

3

Per this Microsoft documentation, лучший способ сделать это с EDATE function.

=EDATE(A5, -12) 

(Затем формат ячейки в качестве даты)

Обратите внимание, что существуют некоторые различия между этим подходом и один Scott recommended. В частности, подумайте, что если ваше первоначальное значение является високосным днем ​​(29 февраля), то вычитание 12 месяцев будет падать в год, когда нет високосного дня. Подход Скотта вернется 1 марта, где функция EDATE приземлится 28 февраля.

То же самое можно увидеть при добавлении/вычитании любого произвольного количества месяцев в конце длинного месяца. Например, добавление одного месяца к 31 марта должно дать 30 апреля с использованием метода EDATE, но даст 1 мая при добавлении значений на дату.

+0

И это короче. –

+0

Большое спасибо, это лучший способ получить дату, которую я хотел. – TimeToCode

+1

Просто для интереса функция VBA DATEADD также дает 28 февраля для примера Мэтта, так что это непротиворечиво. К сожалению, он недоступен в качестве функции рабочего листа. –

5

Вы можете сделать это:

=DATE(YEAR(A5),MONTH(A5)-12,DAY(A5)) 

или после 12 месяцев составляет один год:

=DATE(YEAR(A5)-1,MONTH(A5),DAY(A5)) 
+0

Мне жаль, что у них не было 'DateDiff' для собственного Excel. – Kyle

+0

@Kyle они делают это скрытая функция, но OP не пытается найти разницу, кроме фактической даты. См. Https://support.office.com/en-us/article/DATEDIF-function-25dba1a4-2812-480b-84dd-8b32a451b35c?ui=en-US&rs=en-US&ad=US&fromAR=1 –

+0

Спасибо @ScottCraner как формулы работают отлично! – TimeToCode

Смежные вопросы