Прошедшие дни как годы, месяцы и дни

Если вы используете Excel для отслеживания информации о проектах, вам может потребоваться узнать продолжительность данного проекта в годах, месяцах и днях. Если у вас есть дата начала и дата окончания для каждого проекта, вы можете использовать функцию листа DATEDIF, чтобы вернуть информацию желаемым образом.

Например, предположим, что у вас есть дата начала в ячейке E7 и конечная дата в ячейке F7. Вы можете вычислить разницу между двумя датами с помощью очень простого использования DATEDIF:

= DATEDIF (E7, F7, «d»)

Эта функция возвращает количество дней между двумя датами, при условии, что дата в E7 меньше или равна дате в F7. Третий аргумент, «d», заставляет DATEDIF возвращать результат в днях. Вы также можете указать месяцы (“m”) и годы (‘y “). Однако для целей этого примера есть несколько других аргументов, которые особенно полезны: месяцы без учета лет (” ym “), дни без учета лет ( «ярд») и дни, исключая месяцы и годы («мд»).

Используя эти различные аргументы, вы можете составить формулу, которая вернет ответ, указывающий прошедшие дни в виде лет, месяцев и дней. (Из-за длины формул в этом совете я разбил их на отдельные строки, чтобы их было немного легче читать. Однако это единственная формула, и ее следует вводить как таковую в Excel.)

= РАЗНДАТ (E7, F7, «y») & «годы» & РАЗНДАТ (E7, F7, «ym») & «месяцы» & РАЗНДАТ (E7, F7, «md» ) & «days»

Обратите внимание, что эта формула всегда будет возвращать множественное число, например годы, месяцы и дни. Для тех, кто хочет быть грамматически правильным и указывать единицы в единственном числе, когда она вызывается , следующая формула поможет:

= IF (DATEDIF (E7, F7, «y») = 1, DATED ЕСЛИ (E7, F7, «y») и «год», РАЗНДАТ (E7, F7, «y») и «годы») и ЕСЛИ (РАЗНДАТ (E7, F7, «ym») = 1, РАЗНДАТ (E7 , F7, «гм») и «месяц», РАЗНДАТ (E7, F7, «гм») и «месяцы») & ЕСЛИ (РАЗНДАТ (E7, F7, «md») = 1, РАЗНДАТ (E7, F7, «md») & «day», DATEDIF (E7, F7, «md») & «days»)

Это работает во всех случаях, кроме случаев, когда годы, месяцы или дни равны нулю.. Чтобы избавиться от правильной единицы, когда она равна нулю, требуется еще более длинная формула:

= IF (DATEDIF (E7, F7, «y») = 0, «», IF (DATEDIF (E7 , F7, «y») = 1, РАЗНДАТ (E7, F7, «y») и «год», РАЗНДАТ (E7, F7, «y») и «годы»)) & IF (РАЗНДАТ (E7, F7 , «ym») = 0, «», IF (DATEDIF (E7, F7, «ym») = 1, DATEDIF (E7, F7, «ym») & «month,», DATEDIF (E7, F7, «ym «) &» месяцы, «)) & ЕСЛИ (РАЗНДАТ (E7, F7,» md «) = 0,» «, ЕСЛИ (РАЗНДАТ (E7, F7,» md «) = 0, РАЗНДАТ (E7, F7,» md «) &» день «, РАЗНДАТ (E7, F7,» md «) &» дни «))

Эта формула становится довольно длинной, но она вернет только те единицы, для которых есть ценность. Таким образом, вместо того, чтобы возвращать «0 лет, 2 месяца, 1 день», он вернет «2 месяца, 1 день».

Даже это не идеальная формула, так как она все равно будет отображать запятые между записями в некоторых ситуациях, когда они не требуются. Следующая мегаформула должна исправить множественное число и запятые и избавиться от нулевых записей.

= IF (DATEDIF (E7, F7, «y») = 0, «», IF (DATEDIF (E7, F7) , «y») = 1, РАЗНДАТ (E7, F7, «y») & «год», РАЗНДАТ (E7, F7, «y») и «годы»)) & ЕСЛИ (И (РАЗНДАТ (E7, F7, » y «) 0, DATEDIF (E7, F7,» ym «) 0),», «,» «) & IF (DATEDIF (E7, F7,» ym «) = 0,» «, IF (DATEDIF (E7, F7, «ym») = 1, РАЗНДАТ (E7, F7, «ym») & «месяц», РАЗНДАТ (E7, F7, «ym») & «месяцы»)) & IF (AND (OR (DATEDIF (E7, F7, «y») 0, DATEDIF (E7, F7, «ym») 0), DATEDIF (E7, F7, «md») 0), «,», «») & ЕСЛИ (РАЗНДАТ (E7, F7, «md») = 0, «», ЕСЛИ (РАЗНДАТ (E7, F7, «md») = 1, РАЗНДАТ (E7, F7, «md») & «день», РАЗНДАТ ( E7, F7, «мд») и «дни»))

Источник: frestage.ru

Бытовой вопрос