Как в экселе из даты вычесть дату и получить количество лет
Для вычислений длительностей интервалов дат удобней всего использовать недокументированную функцию РАЗНДАТ() . Этой функции нет в справке EXCEL2007 и в Мастере функций ( SHIFT+F3 ), но она работает ( с некоторыми огрехами ).
Если в ячейке В2 содержится сегодняшняя дата, а в А2 –дата начала отсчета (например, день рождения), то формула: =РАЗНДАТ(A2;B2;"y")&" г. "& РАЗНДАТ(A2;B2;"ym")&" мес. "& РАЗНДАТ(A2;B2;"md")&" дн."
рассчитает сколько лет, месяцев, дней прошло с конкретной даты и вернет результат в виде 37 г. 5 мес. 1 дн .
Как показано в статье о функции РАЗНДАТ() , лучше избегать применения этой функции с аргументом "md", т.к. она может выдать неправильный результат. Поэтому часть формулы РАЗНДАТ(A2;B2;"md") лучше заменить ее эквивалентом: =ЕСЛИ(ДЕНЬ(A2)>ДЕНЬ(B2);ДЕНЬ(КОНМЕСЯЦА(ДАТАМЕС(B2;-1);0))-ДЕНЬ(A2)+ДЕНЬ(B2);ДЕНЬ(B2)-ДЕНЬ(A2))
Итоговая формула приведена в файле примера:
Уточним склонения: год/ лет, месяца/ месяцев, дня/ дней
В случае, если получается целое количество лет, то формула вернет результат в виде 37 г. 0 мес. 0 дн. , что не очень красиво.
Воспользовавшись идеями, подсказанными нашим пользователем МСН, также просклоняем месяцев/ месяца и дней/ дня
=ЕСЛИ(РАЗНДАТ(A2;B2;"y");РАЗНДАТ(A2;B2;"y")&" "&ТЕКСТ(ОСТАТ(МАКС(ОСТАТ(РАЗНДАТ(A2;B2;"y")-11;100);9);10);"[ РАЗНДАТ() с параметрами md и ym подсчитает, что разница составляет 1 месяц и 14 дней.
Алгоритм расчета этой функции следующий: сначала функция последовательно прибавляет месяцы к дате начала, до тех пор пока получившаяся дата меньше конечной. Т.е. к 30.01.2015 функция прибавит 1 месяц и получит 30.02.2015, но такой даты не существует, в феврале 2015г. 28 дней! Ничего страшного, функция запоминает, что нужно отнять 2 дня, чтобы получить правильную дату! Затем идет подсчет оставшихся дней в марте - их 16. Затем, функция к 16 дням прибавляет -2, и получаем 14 дней. Естественно, такой расчет не верен.
Получается, что функцию РАЗНДАТ() можно использовать только для расчета полных лет и месяцев , но без дней. Рассмотренные выше формулы будут в основном возвращать правильный результат (иногда, конечно, будет возникать погрешность в 1-2 дня в меньшую сторону), но часто удобство применения этой функции перевешивает требования к точности. Такой подход безусловно не годится для расчета страхового стажа для определения размера пособий по временной нетрудоспособности (об этом см. статью Расчет страхового (трудового) стажа в MS EXCEL ) .
Обратная задача
Теперь решим обратную задачу: задав количество количество лет, месяцев и дней, рассчитаем конечную дату.
Конечную дату будем рассчитывать двумя способами: через функцию ДАТА() и ДАТАМЕС()
Вычислив конечную дату, затем вычислим с помощью РАЗНДАТ() разницу между ними (должна совпасть с заданной). И наконец, из конечной даты получим начальную, вычтя заданное количество лет, месяцев и дней с использованием формул:
Если для начальной даты 15.01.2015 (строка 8 в файле примера, лист Обратная задача ) все вычисления понятны и одинаковы (добавили 1 год, 2 месяца и 5 дней), получили 20.03.2015, разница составила теже 1 год, 2 месяца и 5 дней, расчетная начальная дата совпала с заданной начальной датой, то для 29.01.2015 все не так гладко (см. строку 9). Для наглядности прибавим 1 месяц.
Как мы уже знаем из статьи Функция ДАТАМЕС() в MS EXCEL функции ДАТА() и ДАТАМЕС() не эквивалентны при прибавлении месяцев:
При прибавлении месяцев между ДАТАМЕС() и ДАТА() существует разница. Прибавим к 29.01.2015 один месяц:
- =ДАТАМЕС("29.01.2015";1) вернет 28.02.2015, т.к. 30 февраля не существует, то функция вернет последний день месяца, т.е. 28.02.2014 ("лишние" 2 дня будут отброшены);
- =ДАТА(ГОД("29.01.2015");МЕСЯЦ("29.01.2015")+1;ДЕНЬ("29.01.2015")) вернет 02.03.2015: "лишние" 2 дня (29 и 30 февраля) будут прибавлены к дате.
Расчет с помощью ДАТАМЕС() кажется логичней, хотя функция РАЗНДАТ() с этим не согласна: разницу, совпадающей с заданной она возвращает только для варианта с функцией ДАТА() .
Расчетная начальная дата в обоих случаях не совпадает с заданной начальной датой: получим 01.02.2015 и 28.01.2015 вместо 29.01.2015.
Как быть? Вероятно, решение будет зависеть от конкретной задачи, стоящей перед пользователем. Необходимо помнить, что нужно использовать ДАТАМЕС() при добавлении (вычитании) месяцев, а РАЗНДАТ() - это недокументированная и, соответственно, не гарантирующая правильность расчетов функция. Об этой функции написана статья Функция РАЗНДАТ() - Вычисление разности двух дат в днях, месяцах, годах в MS EXCEL , в которой дается формула, учитывающая вышеуказанную ситуацию (см. раздел "Еще раз о кривизне РАЗНДАТ() ").
Вычислить разницу между датами в Excel легко, но это может стать сложным в зависимости от того, как вы хотите рассчитать определенные значения. Например, если вы хотите узнать количество месяцев между 5/5/2016 и 15.01.2016, должен ли ответ быть 0 или 1? Некоторые люди могут сказать 0, потому что между датами не полный месяц, а другие могут сказать 1, потому что это другой месяц.
В этой статье я покажу вам, как рассчитать разницу между двумя датами, чтобы найти количество дней, месяцев и лет с различными формулами в зависимости от ваших предпочтений.
Дни между двумя датами
Самый простой расчет, который мы можем сделать, это получить количество дней между двумя датами. Преимущество расчета дней состоит в том, что на самом деле есть только один способ вычисления значения, поэтому вам не нужно беспокоиться о разных формулах, дающих разные ответы.
Эта функция принимает два аргумента: дату окончания и дату начала. Если вы переключите даты в формуле, вы просто получите отрицательное число. Наконец, вы можете использовать функцию под названием DATEDIF, которая включена в Excel из Lotus 1-2-3 дня, но не является официально поддерживаемой формулой в Excel.
Когда вы наберете формулу, вы увидите, что Excel не дает никаких предложений для полей и т. Д. К счастью, вы можете увидеть синтаксис и все поддерживаемые аргументы для Функция DATEDIF Вот.
В качестве дополнительного бонуса, что если вы хотите рассчитать количество дней недели между двумя датами? Это достаточно просто, потому что у нас есть встроенная формула:
Подсчет количества дней и дней недели достаточно прост, поэтому давайте поговорим о месяцах.
Месяцы между двумя датами
Самым хитрым расчетом является количество месяцев из-за того, как вы можете округлять или увеличивать, в зависимости от того, является ли этот месяц полным или неполным. Теперь в Excel есть функция MONTHS, но она очень ограничена, поскольку при расчете разницы будет учитываться только месяц, а не год. Это означает, что это полезно только для расчета разницы между двумя месяцами в одном и том же году.
Поскольку это бессмысленно, давайте посмотрим на некоторые формулы, которые дадут нам правильный ответ. Microsoft предоставила эти Вот, но если вам лень переходить по ссылке, я предоставил и их ниже.
Теперь это две довольно длинные и сложные формулы, и вам действительно не нужно понимать, что происходит. Вот формулы в Excel:
Обратите внимание, что вы должны отредактировать формулу округления вниз в самой ячейке, потому что по какой-то странной причине вся формула не отображается на панели формул. Чтобы увидеть формулу в самой ячейке, нажмите на Формулы вкладка, а затем нажмите Показать формулы,
Итак, каков окончательный результат двух формул в нашем текущем примере? Давайте посмотрим ниже:
Округление дает мне 27 месяцев, а округление дает мне 26 месяцев, что точно, в зависимости от того, как вы хотите на это смотреть. Наконец, вы также можете использовать функцию DATEDIF, но она рассчитывает только полные месяцы, поэтому в нашем случае ответ будет 26.
Годы между двумя датами
Как и в месяцах, годы также могут быть рассчитаны в зависимости от того, хотите ли вы считать 1 год полными 365 днями или учитывается ли изменение года. Итак, давайте возьмем наш пример, где я использовал две разные формулы для расчета количества лет:
Опять же, это вопрос предпочтений и зависит от того, что именно вы пытаетесь рассчитать. Полезно знать оба метода, чтобы можно было решать различные задачи с помощью разных формул.
Пока вы тщательно следите за тем, какие формулы вы используете, довольно легко точно рассчитать, что вы ищете. Помимо перечисленных мною функций, имеется гораздо больше функций даты, поэтому вы можете проверить их также на Служба поддержки сайт. Если у вас есть какие-либо вопросы, не стесняйтесь комментировать. Наслаждайтесь!
Довольно часто при работе датами в таблице Эксель возникает необходимость определения временного промежутка между ними, который измеряется в днях. В Excel существуют различные способы для выполнения данной задачи. Давайте рассмотрим их.
Расчет разности дат
Для корректной работы с датами сперва нужно задать ячейкам соответствующий формат. В противном случае возможны проблемы с корректным отображением дат, что сделает невозможным их дальнейшую обработку.
На самом деле Эксель способен самостоятельно определять формат ячейки после ввода в нее информации. Но этот механизм не всегда срабатывает как надо, поэтому стоит заранее самостоятельно настроить формат ячеек или проверить, правильно ли его определила программа.
- Для начала выделяем целевой диапазон ячеек, воспользовавшись зажатой левой кнопкой мыши.
- по умолчанию мы должны оказаться во вкладке “Число” (если это не так, переключаемся в нее);
- в списке “Числовые форматы” находим позицию “Дата” и кликаем на нее;
- в поле “Тип” выбираем нужный образец представления данных, в соответствии с которым они будут отображаться на листе;
- нажимаем OK.
Метод 1: использование формулы вычитания
Начнем, пожалуй, с самого простого способа – вычитания двух дат, представленного в виде обычной формулы.
- Вносим две даты, между которыми будем определять разницу в днях, в две разные ячейки отформатированного ранее диапазона.
- Теперь выделим ячейку, в которой планируем отобразить результат нашего вычисления.
ВАЖНО: Количество дней обозначается простым целым числом, следовательно, ячейка для его вывода должна иметь отличный от “Дата” формат, а именно – “Общий“. В противном случае полученный результат будет отображаться в формате даты, что не позволит оценить корректность проведенных вычислений. Для определения текущего формата ячейки достаточно взглянуть на соответствующее поле, расположенное в разделе инструментов “Число” на ленте вкладки “Главная“.
Метод 2: функция РАЗНДАТ
Следующий способ – это определение разницы между двумя датами при помощи функции РАЗНДАТ.
Функция имеет следующий синтаксис: =РАЗНДАТ(начальная_дата;конечная_дата;единица).
Если с двумя первыми аргументами все понятно – их суть соответствует названию, то на третьем (“единица“) стоит остановиться подробнее, так как именно он позволяет варьировать результат использования функции, выбирая единицу расчета разницы между датами:
- “d” — количество дней между датами;
- “m” — количество полных месяцев между датами;
- “y” — количество полных лет между датами;
- “YM” — разница между датами в месяцах;
- “MD” — разница между датами в днях, без учета месяцев и лет;
- “YD” — разница между датами в днях, без учета лет.
В нашем случае покажем пример использование аргумента “YD”, так как целью расчета является определение количества дней между датами в пределах года.
Основное отличие от простого вычитания одной даты из другой – в порядке следования аргументов функции: в качестве первого аргумента выбирается начальная (более ранняя дата), а в качестве второго – конечная (более поздняя). Опишем ниже алгоритм вычислений.
Метод 3: функция ЧИСТРАБДНИ для определения количества рабочих дней
Третий описываемый метод позволяет вычислить количество дней с дополнительным условием – исключением из него нерабочих (выходных и праздничных) дней.
В данном методе используется функция ЧИСТРАБДНИ со следующим синтаксисом: =ЧИСТРАБДНИ(нач_дата;кон_дата;[праздники]).
Первые два аргумента аналогичны функции РАЗНДАТ. Последний аргумент является опциональным, то есть функция будет работать и без его указания. Однако именно он позволяет учесть в критериях вычисления нерабочие праздничные дни, так как по умолчанию из общего количества уберутся только субботы и воскресенья.
Приступаем к вычислениям:
Заключение
С помощью описанных выше методов можно достаточно легко посчитать количество дней между двумя датами, как с наличием дополнительных критериев, так и без них. Формула вычитания и функция РАЗНДАТ прекрасно подойдут для простого подсчета дней, а функция ЧИСТРАБДНИ поможет с расчетом количества именно рабочих дней между датами. Окончательный выбор зависит от поставленной перед пользователем задачи.
Самый простой способ в MS Excel посчитать возраст по дате рождения - воспользоваться специальными функциями. Этот метод так же хорошо подойдёт в случае, если необходимо посчитать трудовой стаж работника. В этой статье мы разберём несколько способов подсчёта.
Для определения возраста в программе электронных таблиц нам могут пригодиться несколько встроенных функций из раздела Дата и время. Все они находятся на вкладке Формулы ленты инструментов.
Для начала нам могут понадобиться функции ТДАТА() или СЕГОДНЯ(). Обе эти функции идут без аргументов, т. е. внутри скобок у них пусто. Они возвращают текущую дату. Однако СЕГОДНЯ() возвращает дату в формате число.месяц.год, а ТДАТА() - к этому формату добавляет ещё текущее время.
Воспользуемся одной из этих функций и заполним столбецС текущей датой, чтобы иметь возможность ссылаться на него в формуле. Иногда вместо даты в ячейках могут появиться числа. Тогда необходимо вручную изменить формат ячейки с Числовогона Дата на вкладке Главная.
Рассмотрим несколько способов подсчёта возраста.
1.Внесём в ячейку D2 следующую формулу =(С2-В2)/365,25. Она вычислит разницу в годах между датами из ячеек C2 и B2. Число 365,25 должно учесть високосные года. Протянув за маркер автозаполнения вниз до конца таблицы, заполним столбец данными.
При необходимости можно обойтись без столбцаС, напрямую внеся в формулу одну из приведённых ранее функций. Например =(СЕГОДНЯ()-В2)/365,25.
2. Воспользуемся другой формулой, которая возвращает долю года (количество дней между двумя датами). Выделим ячейку D2 и выполним команду: вкладка Формулы, раздел Дата и время, ДОЛЯГОДА(). В появившемся диалоговом окне заполним поля аргументов функции. Первые две строки отвечают на начальную и конечную даты расчётов. Третья, базис, - способ вычисления дня. Это необязательный аргумент. Его можно оставить незаполненным или внести значения от 0 до 4.
После нажатия на кнопку ОК в ячейке D2 появится формула =ДОЛЯГОДА(В2;С2).
В описанных вариантах расчётов полученные результаты необходимо округлить до нужного количества десятичных знаков (команда Формат ячеек на вкладке Главная или через контекстное меню). Также, для более правильных вычислений можно воспользоваться функцией ОКРУГЛВНИЗ(). Она находится в разделе Математические на вкладке на вкладке Формулы.
3. Ещё один вариант вычисления возраста по дате предполагает использование функции ГОД(). Она преобразует дату из формата Дата и время в число. После можно производить простые математические расчёты. Введём в ячейку D2 формулу =(ГОД(C2)-ГОД(B2)) или воспользуемся вариантом формулы без дополнительного столбца =(ГОД(ТДАТА())-ГОД(A2)).
Данная формула больше всего подходит для подсчёта трудового стажа сотрудников. Результат её работы не требует дополнительных ухищрений с округлением.
4. Последний вариант вычисления возраста по дате предполагает частный случай предыдущей формулы. Его можно использовать, если необходимо посчитать возраста людей, родившийся в конкретный год. Формула в ячейке D2 будет иметь вид =ГОД(СЕГОДНЯ())-1986, где 1986 - заданный год рождения.
Автор: Светлана Бартош
Спасибо за Вашу оценку. Если хотите, чтобы Ваше имя
стало известно автору, войдите на сайт как пользователь
и нажмите Спасибо еще раз. Ваше имя появится на этой стрнице.
Понравился материал?
Хотите прочитать позже?
Сохраните на своей стене и
поделитесь с друзьями
Вы можете разместить на своём сайте анонс статьи со ссылкой на её полный текст
Ошибка в тексте? Мы очень сожалеем,
что допустили ее. Пожалуйста, выделите ее
и нажмите на клавиатуре CTRL + ENTER.
Читайте также: