Вычисление возраста или стажа функцией РАЗНДАТ (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."

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


25.03.2013 20:47:43
Здравствуйте. Подскажите, как нужно считать стаж работы в этом случае:
с 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
Дата ухода - Дата прихода по каждому рабочему месту отдельно. Потом все сложить. Посмотрите видео тут - будет понятнее.
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 - количество дней

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

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

Ещё раз спасибо.
16.09.2013 00:08:59
Если даты из разных лет, то можно =ЦЕЛОЕ((A2-A1)/30,5)-1
18.09.2013 11:11:10
Спасибо за подсказку.
25.09.2013 21:55:59
Николая доброго времени суток. Вопрос в следующем для учета дней отпуска необходимо что бы после 1 год 2 мес и 15 (и более) дн таблица давала значение 1год и 3 месяца, в случае если менее 15 календарных дней то 1 год и 2 месяца. Заранее спасибо за ответ.
28.10.2013 16:39:36
Николай! Аллилуйа! у меня заработало
=РАЗНДАТ(СЕГОДНЯ();C3;"y")&" г. "&РАЗНДАТ(СЕГОДНЯ();C3;"ym")&" мес. "&РАЗНДАТ(СЕГОДНЯ();C3;"md")&" дн.", это для списка задач.
А как теперь к этой красоте приделать условное форматирование? чтобы, допустим, меньше двух недель осталось - красный, от двух недель до месяца желтый, больше месяца до шести зеленый, больше шести синий? заранее спасибо!
22.02.2014 09:44:29
22.02.2014 17:24:38
Николай, добрый день! Помогите пожалуйста.Есть два столбца: в одном фамилия сотрудника, в другом уже посчитанный медицинский стаж работы, уже в виде, допустим 22г. 2м. 13д. Хотелось бы, чтобы в третьем столбце можно было считать стаж на каждый месяц, учитывая, что по истечении 30 дней они переводятся в месяц, соответственно 12 месяцев добавляют к годам. Функцию РАЗНДАТ не использую, так как для 500 сотрудников трудоёмко вводить отдельно года их работы, тем более у многих идет прерывный стаж, поэт.сразу же на первое января 2014 года стаж посчитан и введен в столбцы. Заранее спасибо.
28.12.2022 12:24:27
Светлана, как вы вышли из ситуации? Мне тоже такой расчет нужен
16.04.2014 14:07:55
Доброго времени суток! Подскажите как написать формулу по следующим критериям: расчет количества дней между двумя датами, при условии что полный календарный месяц, входящий в разницу между датами, должен считаться как 30 дней?
Заранее спасибо!
15.05.2014 14:05:59
Добрый день!

Нужна помощь специалистов.
Имею время начала операции и время окончания операции в следующем формате.
Нужно рассчитать время выполнения операции в часах.
Вр. созданияВр. решенияДлит.выполнения
10.02.2014 16:3510.02.2014 16:54
10.02.2014 16:5611.02.2014 09:18
Как это можно осуществить?
Буду очень признателен за помощь.
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
..
26.12.2014 01:12:09
Добрый!
Вот это было бы очень полезно. В формате 3 г. 4 мес. 12 дн. 5 ч. 20 мин. или только количество часов. Есть у кого идеи на этот счет?
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 - даты праздников
Николай скажите пожалуйста,а как полученный стаж: например: 2 года 2 месяца и 2 дня умножить на какой либо коэффициент. например 2 ???
02.12.2014 23:01:43
Николай, здравствуйте!
Подскажите, существует ли вариант подсчета количества календарных дней за вычетом праздничного дня (при его наличии в заданном диапазоне),  в условии заданы  начальная и конечная дата. Мне это необходимо для подсчета дней отпуска.


Заранее спасибо за ответ,
Трофимова Татьяна
02.12.2014 23:33:59
См.предыдущий комментарий чуть выше.
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
Прибавить один? :)
11.12.2016 22:40:45
Николай, как не прискорбно, но я вынужден всё-таки признать, что сам никак (сколько не бился) не могу этого сделать - найти способ добавить к формуле =РАЗНДАТ(A1;B1;"d") еще один день...... Прошу помощи!
Заодно, если можно, подскажите: каким образом (формулой?) можно перевести количество дней (т.е.простое целое положительное число) в показатель: Х л Х м Х д?(если таковая есть вообще)
Спасибо!
23.03.2015 20:33:44
Разность между текстовыми датами(кол-во месяцев с учетом последнего) =(12*(ПСТР(B1;7;4)-ПСТР(A1;7;4))-ПСТР(A1;4;2)+ПСТР(B1;4;2))
14.06.2015 13:43:35
Приветствую! подскажите новичку...какую конструкцию построить, чтоб выдавал г. (год), если результат 1,2,3,4 и л. (лет), если результат по годам больше 5? спасибо! ( а то как-то рез-т : " стаж 2 лет " или " стаж 5 год " режет слух:D)
05.02.2016 10:02:23
Прошу совета
Использую формулу вычисления возраста =РАЗНДАТ(A1; СЕГОДНЯ(); "y")

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

как этого избежать?
В ответе показывается 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?
Добрый день! Подскажите, есть две ячейки с вычесленными стажами через РАЗНДАТ. Мне нужно их сложить. То есть, есть ячейка 1г. 5мес. 12дн. и есть ячейка 2г. 11мес. 4дн. Вот как их сложить, чтобы получилось общее количество лет, месяцев и дней? То есть 4г. 4мес. 16дн. (в ручную примерно посчитал). Есть ли такая функция? Спасибо!
27.11.2020 12:28:48
ФИОПринятУВОЛЕНОТРАБОТАНОЛЕТМЕСЯЦЕВДНЕЙ
Сидоров Иван Петрович24.02.201429.05.20181555435
03.09.201814.10.2018410111
03.11.201819.12.2018460116
25.04.201927.11.2020582172
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
222451234
6,09=ПРАВСИМВ(ГОД(I19);2)=МЕСЯЦ(I19)=ДЕНЬ(I19)
I19 >01.02.19060621
26.10.2016 21:09:15
Доброго времени суток! Я столкнулся с задачей следующего содержания:
Есть стаж работы в нескольких организациях (4-6 периодов). Как вычислить дату, на которую стаж будет равен 10 лет?
Спасибо!
26.11.2016 18:07:21
Николай, доброго дня!
что-то проблемы с предлагаемыми формулами: если исп. =РАЗНДАТ(A1;B1;"y")&" л "&РАЗНДАТ(A1;B1;"ym")&" м "&РАЗНДАТ(A1;B1;"md")&" д " , или =РАЗНДАТ(A1;B1;"d")- то показателю "Х л Х м Х д" всегда не хватает одного дня для корректного подсчета показателя (последний день (В1) почему-то всегда "выпадает" из подсчета.... Как исправить данную печальку??
17.01.2017 13:00:53
Спасибо! Очень помогли!
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 и итоги суммирую. скорее всего это абсолютно и совершенно кустарный метод на коленке, но другого не знаю, а потом взываю к вам за помощью и советом:)  
19.03.2017 16:03:19
Здравствуйте! А вы можете сделать видео урок посещенной функции "РАЗНДАТ"?  
По вычислению трудового стажа?
Заранее спасибо ;)
привет! Подскажите, есть две ячейки с вычесленными стажами через РАЗНДАТ. Мне нужно их сложить. То есть, есть ячейка 1г. 5мес. 12дн. и есть ячейка 2г. 11мес. 4дн. Вот как их сложить, чтобы получилось общее количество лет, месяцев и дней? То есть 4г. 4мес. 16дн.  Есть ли такая функция? Спасибо!
14.04.2017 14:13:54
Николай, спасибо за открытие функции РАЗНДАТ – очень полезная функция!
Интересно, какие еще в Excel есть недокументированные функции?
08.10.2017 12:20:00
Добрый день!
В первой из двух ячеек с датами для расчета, через Alt+Enter перечислено несколько дат. Есть ли возможность сконструировать формулу так, чтобы она могла отсортировывать и обращаться к первой из имеющихся в первой ячейке дат или такая возможность отсутствует и содержимое этой ячейки программой воспринимается как свалка? Заранее спасибо!

30.01.2019 14:08:30
Однозначно "свалка" - надо разделять.
27.11.2017 21:08:06
подскажите пожалуйста,как
 
Вывести список рабочих, работавших в субботу и в воскресенье
Определить суммарное и среднее количество отработанных рабочими часов для каждого разряда(#)(*).
17.12.2017 13:59:42
Здаствуйте помогите вычислить  формате 3 г. 4 мес. 12 дн. 5 ч. 20 мин. или только количество часов. Есть у кого идеи на этот счет?
04.04.2018 19:29:19
Спасибо большое. Как всегда всё чётко и понятно.
02.10.2018 12:35:11
Здравствуйте, уважаемые Знатоки!

Я прошу помощи в следующем.
Имеются два столбика. Первый столбик - это дата начала периода. Второй столбик - дата окончания периода. Каждая строка представляет ПЕРИОД,  протяженностью несколиких лет (больше одного).
Нужно вычислить количество месяцев для каждого "составляющего" года. То есть итог будет выглядеть результатом для каждого года, который вкладывается в период каждой строки.

Например для периода 02.01.2018 (столбик 1) - 28.06.22 (столбик 2) результат будет выражен следующим:

Столбик 3 (2018 год) - 12 месяцев;
Столбик 4 (2019 год) - 12 месяцев;
Столбик 5 (2020 год) -  12 месяцев;
Столбик 6 (2021 год) -12 месяцев;
Столбик 7 (2022 год) -6 месяцев.
Всего месяцев - 54

Необходимость связана с планированием и расчетами долгосрочных проектов (работ), когда необходимо автоматически (при изменении дат начала или окончания при планировании и расчетах) получать количество месяцев производимых работ в каждом годе, входящим в состав поолного ПЕРИОДА. Фактически формула кажется должна иметь универсальную архитектуру и количество лет будет определять эту формулу с интерпретацией для каждого входящего в полный период года.

В принципе, с учетом срочной необходимости, меня устроит ЦЕЛОЕ число месяцев, поскольку, видимо, сложно определить точное число месяев (не целое).

Я попробовал составить формулу, но у меня получается "дремучий лес" логических условий, до конца дойти не могу...

С надеждой Анатолий.
Здравствуйте! Подскажите пожалуйста, как нужно прописать в формуле, чтобы она считала Дату рождения не о дней, а 1-й день, то есть у меня родился теленок 01.01.20 и в этот день ему дали покушать, т.е. считается корма днем, и мне на 01.01.20 нужно, чтобы в таблице это отобразилось с помощью формулы, я использовала функцию ЕСЛИ и РАЗНДАТ, но ничего не получается, они выдают, что 01.01.20 - 01.01.20 = 0, что логично, но мне надо чтобы была единица. Что не так я делаю?
Здравствуйте! Подскажите пожалуйста, как мне в Экселе записать формулу, чтобы она рассчитала 01.01.20 - 01.01.20 = 1, а не ноль?
05.03.2023 05:29:00
Здравствуйте!
Применяя формулу: =DATEDIF(F9,G9,"ym";) &"month"&DATEDIF(F9,G9,"md";) &"days" получаю результаты в виде
4month24days
1month17days
подскажите пожалуйста, как найти сумму полученных выше результатов в в виде: years/month/days, то есть как найти общую сумму множества значений полученных с помощью формулы =DATEDIF?
01.08.2023 09:25:31
Николай, добрый день
через функцию разндат вычислил сколько времени проработал на каждом месте, подскажите пожалуйста как получить общий стаж.
07.09.2023 11:46:27
Добрый день.
Формула считает не корректно.
В месяце 28, 29, 30 или 31 день.

А формула может считать и 32 дня, и 87 дней и т.д..  По идее, по правильному - если идет день следующий за последним днем месяца - то автоматом месяц должен становиться следующим а количество дней обнулится.
Т.е. например стаж - показывается 1 год 1 месяц и 37 дней.   -    Это ошибка.

Должно показываться 1 год 2 месяца и (там) 6 дней

Вот как сделать этот правильный подсчет с автоматическим пересчетом в правильную сторону?
Наверх