Формула Excel: получение дней, месяцев и лет между датами -

Общая формула

=DATEDIF(start,end,"y") &" years,"&DATEDIF(start,end,"ym") &" months," &DATEDIF(start,end,"md") &" days"

Резюме

Для расчета и отображения времени между датами в днях, месяцах и годах можно использовать формулу, основанную на функции РАЗНДАТ.

В показанном примере формула в D6:

=DATEDIF(B6,C6,"y") &" years,"&DATEDIF(B6,C6,"ym") &" months," &DATEDIF(B6,C6,"md") &" days"

где даты начала указаны в столбце B, а даты окончания - в столбце C.

Объяснение

Функция РАЗНДАТ предназначена для вычисления разницы между датами в годах, месяцах и днях. Доступно несколько вариантов (например, время в месяцах, время в месяцах без учета дней и лет и т. Д.), И они устанавливаются аргументом "unit" в функции. См. Эту страницу о функции РАЗНДАТ для получения полного списка доступных единиц.

В показанном примере мы вычисляем годы, месяцы и дни отдельно, а затем «склеиваем» результаты конкатенацией. Чтобы получить целые годы, мы используем:

DATEDIF(B6,C6,"y")&" years,"

Чтобы получить целые месяцы, мы используем:

DATEDIF(B6,C6,"ym")&" months,"

И мы рассчитываем дни с помощью:

DATEDIF(B6,C6,"md")&" days"

Остальная часть формулы - это просто необходимый текст, объединенный с помощью оператора конкатенации (&).

Без нулевых значений

Чтобы предотвратить вывод дней, месяцев или лет с нулевыми значениями, вы можете заключить каждую функцию DATEDIF в IF, как показано здесь (разрывы строк добавлены для удобства чтения):

= IF(DATEDIF(B6,C6,"y"), DATEDIF(B6,C6,"y")&"yr ","")& IF(DATEDIF(B6,C6,"ym"), DATEDIF(B6,C6,"ym")&" mo ","")& IF(DATEDIF(B6,C6,"md"), DATEDIF(B6,C6,"md") &" dy","")

Чтобы предотвратить появление лишних запятых в конечном результате, запятые были заменены пробелами. Использование исходной формулы DATEDIF в качестве «логической проверки» внутри IF работает, потому что IF обрабатывает любой ненулевой результат как истинный.

Хорошие ссылки

Подробная статья о DATEDIF (Ablebits)

Интересные статьи...