Вычисление возраста или стажа функцией РАЗНДАТ (DATEDIF)

Для вычислений длительностей интервалов дат в Excel есть функция РАЗНДАТ, в английской версии - DATEDIF.

Нюанс в том, что Вы не найдете эту функцию в списке Мастера функций, нажав кнопку fx - она является недокументированной возможностью Excel. Точнее говоря, найти описание этой функции и ее аргументов можно только в полной версии англоязычной справки, поскольку на самом деле она оставлена для совместимости со старыми версиями Excel и Lotus 1-2-3. Однако, несмотря на то, что эту функцию не получится вставить стандартным способом через окно Вставка - Функция (Insert - Function), ее можно вручную вписать в ячейку с клавиатуры - и она сработает!

Синтаксис функции следующий:

=РАЗНДАТ(Начальная_дата; Конечная_дата; Способ_измерения)

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

"y" разница в полных годах   
"m" в полных месяцах
"d" в полных днях
"yd" разница в днях с начала года без учета лет
"md" разница в днях без учета месяцев и лет
"ym" разница в полных месяцах без учета лет

Например:

Вычисление разницы между двумя датами функцией РАЗНДАТ

Т.е. при желании подсчитать и вывести, например, ваш стаж в виде "3 г. 4 мес. 12 дн.", необходимо ввести в ячейку следующую формулу:

=РАЗНДАТ(A1;A2;"y")&" г. "&РАЗНДАТ(A1;A2;"ym")&" мес. "&РАЗНДАТ(A1;A2;"md")&" дн."

где А1 - ячейка с датой поступления на работу, А2 - с датой увольнения.

или в английской версии Excel:

=DATEDIF(A1;A2;"y")&" y. "&DATEDIF(A1;A2;"ym")&" m. "&DATEDIF(A1;A2;"md")&" d."

Ссылки по теме


Здравствуйте. Подскажите, как нужно считать стаж работы в этом случае:
с 01.09.2004г.
по 01.03.2006г.
с 14.03.2006г.
по 01.08.2006г.
с 17.08.2006г.
по 05.09.2011г.
с 05.12.2011
по 02.07.2012г.
Т.е. как учитывать разрывы? и второе, как посчитать, например не все, а пару-тройку "промежутков"?
16.04.2013 00:41:08
Дата ухода - Дата прихода по каждому рабочему месту отдельно. Потом все сложить. Посмотрите видео тут - будет понятнее.
Не задан ID пользователя.

26.08.2013 04:56:32
Николай, здравствуйте. Подскажите пожалйста следующий момент. Стаж работы по каждому месту работы в днях я подсчитал и просуммировал. допустим получилось 4231. Как сделать так чтобы представление количества полученных дней было в виде "3 г. 4 мес. 12 дн." - как в вашем примере. Т.е. как таковой разницы дат нет - есть полученное количество дней.
Спасибо.
28.08.2013 08:50:39
Тогда встречный вопрос - сколько дней в месяц будем брать? 30?
01.09.2013 09:42:10
Если подсчитанное количество дней стажа в А1, то:
A2=ЦЕЛОЕ(A1/365) - количество лет
A3=ЦЕЛОЕ(ОСТАТ(A1;365)/30,5) - количество месяцев
A4=A1-A2*365-A3*30,5 - количество дней

Как-то так...
Не задан ID пользователя.

02.09.2013 08:06:19
Спасибо!
Не задан ID пользователя.

08.09.2013 13:15:24
Здравствуйте!
Подскажите пожалуйста, как быть если необходимость подсчитать количество полных календарных месяцев. Например, основное средство принято в эксплуатацию 14 января 2013 г., отчёт по данному ОС готовится по состоянию на 27 августа 2013 г. Количество амортизируемых месяцев - 6 (февраль, март, апрель, май, июнь, июль). Если применить РАЗНДАТ используя способ измерения "ym", то результат будет - 7, что в данном случае не прав-но, так как требуется подсчитать не полные месяцы, а полные календарные месяцы. Как быть?
Спасибо за помощь.
13.09.2013 23:22:43
Леонид, если в А1 лежит дата приема в эксплуатацию, а в А2 - дата, на которую готовится отчет, то количество полных месяцев можно посчитать просто как =МЕСЯЦ(A2)-МЕСЯЦ(A1)
Не задан ID пользователя.

15.09.2013 09:45:33
Николай, спасибо за подсказку. В моём случае, дополнительно к приведённой формуле, пришлось применить поправочную константу "-1". Формула приняла вид =(МЕСЯЦ(A2)-МЕСЯЦ(A1))-1.

Тем кто решит этим воспользоваться:
данное вычисление, для моей задачи, корректно действет в пределах календарного года. Если даты из разных календарных лет, то результат, для поставленной задачи, будет неверен. Наводка получена, попробую универсальную конструкцию из формул организовать.

Ещё раз спасибо.
16.09.2013 00:08:59
Если даты из разных лет, то можно =ЦЕЛОЕ((A2-A1)/30,5)-1
Не задан ID пользователя.

18.09.2013 11:11:10
Спасибо за подсказку.
Не задан ID пользователя.

25.09.2013 21:55:59
Николая доброго времени суток. Вопрос в следующем для учета дней отпуска необходимо что бы после 1 год 2 мес и 15 (и более) дн таблица давала значение 1год и 3 месяца, в случае если менее 15 календарных дней то 1 год и 2 месяца. Заранее спасибо за ответ.
Не задан ID пользователя.

28.10.2013 16:39:36
Николай! Аллилуйа! у меня заработало
=РАЗНДАТ(СЕГОДНЯ();C3;"y")&" г. "&РАЗНДАТ(СЕГОДНЯ();C3;"ym")&" мес. "&РАЗНДАТ(СЕГОДНЯ();C3;"md")&" дн.", это для списка задач.
А как теперь к этой красоте приделать условное форматирование? чтобы, допустим, меньше двух недель осталось - красный, от двух недель до месяца желтый, больше месяца до шести зеленый, больше шести синий? заранее спасибо!
22.02.2014 09:44:29
Не задан ID пользователя.

22.02.2014 17:24:38
Николай, добрый день! Помогите пожалуйста.Есть два столбца: в одном фамилия сотрудника, в другом уже посчитанный медицинский стаж работы, уже в виде, допустим 22г. 2м. 13д. Хотелось бы, чтобы в третьем столбце можно было считать стаж на каждый месяц, учитывая, что по истечении 30 дней они переводятся в месяц, соответственно 12 месяцев добавляют к годам. Функцию РАЗНДАТ не использую, так как для 500 сотрудников трудоёмко вводить отдельно года их работы, тем более у многих идет прерывный стаж, поэт.сразу же на первое января 2014 года стаж посчитан и введен в столбцы. Заранее спасибо.
Не задан ID пользователя.

16.04.2014 14:07:55
Доброго времени суток! Подскажите как написать формулу по следующим критериям: расчет количества дней между двумя датами, при условии что полный календарный месяц, входящий в разницу между датами, должен считаться как 30 дней?
Заранее спасибо!
Не задан ID пользователя.

15.05.2014 14:05:59
Добрый день!

Нужна помощь специалистов.
Имею время начала операции и время окончания операции в следующем формате.
Нужно рассчитать время выполнения операции в часах.
Вр. созданияВр. решенияДлит.выполнения
10.02.2014 16:3510.02.2014 16:54
10.02.2014 16:5611.02.2014 09:18
Как это можно осуществить?
Буду очень признателен за помощь.
Не задан ID пользователя.

10.07.2014 13:56:07
Вр. созданияВр. решенияДлит.выполнения
10.02.2014 16:3510.02.2014 16:54
=B1-A1
10.02.2014 16:5611.02.2014 09:18
..
Не задан ID пользователя.

26.12.2014 01:12:09
Добрый!
Вот это было бы очень полезно. В формате 3 г. 4 мес. 12 дн. 5 ч. 20 мин. или только количество часов. Есть у кого идеи на этот счет?
Не задан ID пользователя.

23.07.2014 08:08:55
Добрый день.

Подскажите как посчитать продолжительность отпуска ( с вычетом заданных праздничных дней)  но не в рабочих днях, а в календарных.
Я пробовала задать в функции WORKDAY.INTL условие - что нет выходных, но это не работает

У нас подсчет отпусков ведется в календарных днях (минус праздники , выпадающие на период отпуска)
27.07.2014 14:51:38
Динара, вам нужна функция NETWORKDAYS.INTL в следующем виде:
=NETWORKDAYS.INTL(A1,A2,"0000000",D1:D5)
где
А1 - начало отпуска
А2 - конец отпуска
D1:D5 - даты праздников
Не задан ID пользователя.

28.07.2014 18:42:06
Николай скажите пожалуйста,а как полученный стаж: например: 2 года 2 месяца и 2 дня умножить на какой либо коэффициент. например 2 ???
Не задан ID пользователя.

02.12.2014 23:01:43
Николай, здравствуйте!
Подскажите, существует ли вариант подсчета количества календарных дней за вычетом праздничного дня (при его наличии в заданном диапазоне),  в условии заданы  начальная и конечная дата. Мне это необходимо для подсчета дней отпуска.


Заранее спасибо за ответ,
Трофимова Татьяна
02.12.2014 23:33:59
См.предыдущий комментарий чуть выше.
Не задан ID пользователя.

26.11.2016 17:11:39
Николай, доброго дня!
что-то проблема с предлагаемыми формулами: если исп. =РАЗНДАТ(A1;B1;"y")&" л  "&РАЗНДАТ(A1;B1;"ym")&" м  "&РАЗНДАТ(A1;B1;"md")&" д " ,  или =РАЗНДАТ(A1;B1;"d")- то показателю "Х л Х м Х д" всегда не хватает одного дня для корректного подсчета показателя (последний день (В1) почему-то всегда "выпадает" из подсчета.... Как исправить данную печальку??
28.11.2016 14:43:49
Прибавить один? :)
Не задан ID пользователя.

11.12.2016 22:40:45
Николай, как не прискорбно, но я вынужден всё-таки признать, что сам никак (сколько не бился) не могу этого сделать - найти способ добавить к формуле =РАЗНДАТ(A1;B1;"d") еще один день...... Прошу помощи!
Заодно, если можно, подскажите: каким образом (формулой?) можно перевести количество дней (т.е.простое целое положительное число) в показатель: Х л Х м Х д?(если таковая есть вообще)
Спасибо!
Не задан ID пользователя.

23.03.2015 20:33:44
Разность между текстовыми датами(кол-во месяцев с учетом последнего) =(12*(ПСТР(B1;7;4)-ПСТР(A1;7;4))-ПСТР(A1;4;2)+ПСТР(B1;4;2))
Не задан ID пользователя.

14.06.2015 13:43:35
Приветствую! подскажите новичку...какую конструкцию построить, чтоб выдавал г. (год), если результат 1,2,3,4 и л. (лет), если результат по годам больше 5? спасибо! ( а то как-то рез-т : " стаж 2 лет " или " стаж 5 год " режет слух:D)
Не задан ID пользователя.

05.02.2016 10:02:23
Прошу совета
Использую формулу вычисления возраста =РАЗНДАТ(A1; СЕГОДНЯ(); "y")

A1  в формате дата.
Если А1 не заполнено (то есть равно 0) то возраст показывается как 116

как этого избежать?
Не задан ID пользователя.

14.06.2016 18:27:47
В ответе показывается 116, потому что если значение A1 равно 0, то Excel вместо 0 подставляет дату 00.01.1900 (минимальную, которую система считает начальной). Поэтому 116 - это значение между датой 00.01.1900 и сегодняшней. Решить вопрос можно через функцию ЕСЛИ. То есть в ячейке, где считается стаж (допустим, C1) функция РАЗНДАТ должна быть внутри функции ЕСЛИ. Пример: ячейка A1 содержит дату поступления на работу, ячейка B1 - сегодняшнюю дату (функцию СЕГОДНЯ), ячейка C1 - формулу, что считает стаж. Тогда значение ячейки C1 будет таким: =ЕСЛИ(A1=0;0;РАЗНДАТ(A1;B1;"y";)&"г."&РАЗНДАТ(A1;B1;"ym";)&"мес."&РАЗНДАТ(A1;B1;"md";)&"дн.";). То есть Если A1 равно 0, то ячейка C1 будет показывать 0, если больше, то будет включаться функция РАЗНДАТ. В вашем случа формула будет такая: =ЕСЛИ(A1=0;0;РАЗНДАТ(A1;СЕГОДНЯ();"y"))
14.03.2016 11:43:39
Добрый день! Подскажите, пожалуйста, как дату в формате 6 лет, 6 мес. преобразовать в формат 6,5?
Не задан ID пользователя.

08.06.2016 16:00:00
Добрый день! Подскажите, есть две ячейки с вычесленными стажами через РАЗНДАТ. Мне нужно их сложить. То есть, есть ячейка 1г. 5мес. 12дн. и есть ячейка 2г. 11мес. 4дн. Вот как их сложить, чтобы получилось общее количество лет, месяцев и дней? То есть 4г. 4мес. 16дн. (в ручную примерно посчитал). Есть ли такая функция? Спасибо!
Не задан ID пользователя.

26.10.2016 21:09:15
Доброго времени суток! Я столкнулся с задачей следующего содержания:
Есть стаж работы в нескольких организациях (4-6 периодов). Как вычислить дату, на которую стаж будет равен 10 лет?
Спасибо!
Не задан ID пользователя.

26.11.2016 18:07:21
Николай, доброго дня!
что-то проблемы с предлагаемыми формулами: если исп. =РАЗНДАТ(A1;B1;"y")&" л "&РАЗНДАТ(A1;B1;"ym")&" м "&РАЗНДАТ(A1;B1;"md")&" д " , или =РАЗНДАТ(A1;B1;"d")- то показателю "Х л Х м Х д" всегда не хватает одного дня для корректного подсчета показателя (последний день (В1) почему-то всегда "выпадает" из подсчета.... Как исправить данную печальку??
Не задан ID пользователя.

17.01.2017 13:00:53
Спасибо! Очень помогли!
Не задан ID пользователя.

15.02.2017 16:05:44
помогите, пожалуйста, никак не могу сообразить. надо просчитать количество лет (нужно получить не целое число) просрочки платежей с учетом того, что просрочка составляет больше одного года и часть периода просрочки может попадать на високосный год, а может не попадать.

например, срок оплаты 20.10.2015, нужен срок просрочки задолженности на 10.02.2017 в нецелых годах с учетом того, что в 2015 году 365 дней, в 2016 - 366, и в 2017 - 365. на данный момент я высчитываю сначала кол-во дней с 20.10.15 по 01.01.16 плюс с 01.01.17 по 10.02.17 и делю на 365, потом прибавляю один год. либо если надо посчитать просрочку например, на 20.10.16 то сначала считаю просрочку 2015 года и делю на 365, потом отдельно за 2016 и делю их на 366 и итоги суммирую. скорее всего это абсолютно и совершенно кустарный метод на коленке, но другого не знаю, а потом взываю к вам за помощью и советом:)  
Не задан ID пользователя.

19.03.2017 16:03:19
Здравствуйте! А вы можете сделать видео урок посещенной функции "РАЗНДАТ"?  
По вычислению трудового стажа?
Заранее спасибо ;)
Не задан ID пользователя.

07.04.2017 13:08:52
привет! Подскажите, есть две ячейки с вычесленными стажами через РАЗНДАТ. Мне нужно их сложить. То есть, есть ячейка 1г. 5мес. 12дн. и есть ячейка 2г. 11мес. 4дн. Вот как их сложить, чтобы получилось общее количество лет, месяцев и дней? То есть 4г. 4мес. 16дн.  Есть ли такая функция? Спасибо!
Не задан ID пользователя.

14.04.2017 14:13:54
Николай, спасибо за открытие функции РАЗНДАТ – очень полезная функция!
Интересно, какие еще в Excel есть недокументированные функции?