Вычисление возраста или стажа функцией РАЗНДАТ (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."
Ссылки по теме
- Как сделать выпадающий календарь для быстрого ввода любой даты мышью в любую ячейку.
- Как Excel работает с датами
- Как сделать так, чтобы текущая дата автоматически вводилась в ячейку.
- Как выяснить, пересекаются ли два интервала дат и на сколько дней
с 01.09.2004г.
по 01.03.2006г.
с 14.03.2006г.
по 01.08.2006г.
с 17.08.2006г.
по 05.09.2011г.
с 05.12.2011
по 02.07.2012г.
Т.е. как учитывать разрывы? и второе, как посчитать, например не все, а пару-тройку "промежутков"?
Спасибо.
A2=ЦЕЛОЕ(A1/365) - количество лет
A3=ЦЕЛОЕ(ОСТАТ(A1;365)/30,5) - количество месяцев
A4=A1-A2*365-A3*30,5 - количество дней
Как-то так...
Подскажите пожалуйста, как быть если необходимость подсчитать количество полных календарных месяцев. Например, основное средство принято в эксплуатацию 14 января 2013 г., отчёт по данному ОС готовится по состоянию на 27 августа 2013 г. Количество амортизируемых месяцев - 6 (февраль, март, апрель, май, июнь, июль). Если применить РАЗНДАТ используя способ измерения "ym", то результат будет - 7, что в данном случае не прав-но, так как требуется подсчитать не полные месяцы, а полные календарные месяцы. Как быть?
Спасибо за помощь.
Тем кто решит этим воспользоваться:
данное вычисление, для моей задачи, корректно действет в пределах календарного года. Если даты из разных календарных лет, то результат, для поставленной задачи, будет неверен. Наводка получена, попробую универсальную конструкцию из формул организовать.
Ещё раз спасибо.
=РАЗНДАТ(СЕГОДНЯ();C3;"y")&" г. "&РАЗНДАТ(СЕГОДНЯ();C3;"ym")&" мес. "&РАЗНДАТ(СЕГОДНЯ();C3;"md")&" дн.", это для списка задач.
А как теперь к этой красоте приделать условное форматирование? чтобы, допустим, меньше двух недель осталось - красный, от двух недель до месяца желтый, больше месяца до шести зеленый, больше шести синий? заранее спасибо!
Заранее спасибо!
Нужна помощь специалистов.
Имею время начала операции и время окончания операции в следующем формате.
Нужно рассчитать время выполнения операции в часах.
Буду очень признателен за помощь.
=B1-A1
Вот это было бы очень полезно. В формате 3 г. 4 мес. 12 дн. 5 ч. 20 мин. или только количество часов. Есть у кого идеи на этот счет?
Подскажите как посчитать продолжительность отпуска ( с вычетом заданных праздничных дней) но не в рабочих днях, а в календарных.
Я пробовала задать в функции WORKDAY.INTL условие - что нет выходных, но это не работает
У нас подсчет отпусков ведется в календарных днях (минус праздники , выпадающие на период отпуска)
=NETWORKDAYS.INTL(A1,A2,"0000000",D1:D5)
где
А1 - начало отпуска
А2 - конец отпуска
D1:D5 - даты праздников
Подскажите, существует ли вариант подсчета количества календарных дней за вычетом праздничного дня (при его наличии в заданном диапазоне), в условии заданы начальная и конечная дата. Мне это необходимо для подсчета дней отпуска.
Заранее спасибо за ответ,
Трофимова Татьяна
что-то проблема с предлагаемыми формулами: если исп. =РАЗНДАТ(A1;B1;"y")&" л "&РАЗНДАТ(A1;B1;"ym")&" м "&РАЗНДАТ(A1;B1;"md")&" д " , или =РАЗНДАТ(A1;B1;"d")- то показателю "Х л Х м Х д" всегда не хватает одного дня для корректного подсчета показателя (последний день (В1) почему-то всегда "выпадает" из подсчета.... Как исправить данную печальку??
Заодно, если можно, подскажите: каким образом (формулой?) можно перевести количество дней (т.е.простое целое положительное число) в показатель: Х л Х м Х д?(если таковая есть вообще)
Спасибо!
Использую формулу вычисления возраста =РАЗНДАТ(A1; СЕГОДНЯ(); "y")
A1 в формате дата.
Если А1 не заполнено (то есть равно 0) то возраст показывается как 116
как этого избежать?
Есть стаж работы в нескольких организациях (4-6 периодов). Как вычислить дату, на которую стаж будет равен 10 лет?
Спасибо!
что-то проблемы с предлагаемыми формулами: если исп. =РАЗНДАТ(A1;B1;"y")&" л "&РАЗНДАТ(A1;B1;"ym")&" м "&РАЗНДАТ(A1;B1;"md")&" д " , или =РАЗНДАТ(A1;B1;"d")- то показателю "Х л Х м Х д" всегда не хватает одного дня для корректного подсчета показателя (последний день (В1) почему-то всегда "выпадает" из подсчета.... Как исправить данную печальку??
например, срок оплаты 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 и итоги суммирую. скорее всего это абсолютно и совершенно кустарный метод на коленке, но другого не знаю, а потом взываю к вам за помощью и советом:)
По вычислению трудового стажа?
Заранее спасибо
Интересно, какие еще в Excel есть недокументированные функции?
В первой из двух ячеек с датами для расчета, через Alt+Enter перечислено несколько дат. Есть ли возможность сконструировать формулу так, чтобы она могла отсортировывать и обращаться к первой из имеющихся в первой ячейке дат или такая возможность отсутствует и содержимое этой ячейки программой воспринимается как свалка? Заранее спасибо!
Я прошу помощи в следующем.
Имеются два столбика. Первый столбик - это дата начала периода. Второй столбик - дата окончания периода. Каждая строка представляет ПЕРИОД, протяженностью несколиких лет (больше одного).
Нужно вычислить количество месяцев для каждого "составляющего" года. То есть итог будет выглядеть результатом для каждого года, который вкладывается в период каждой строки.
Например для периода 02.01.2018 (столбик 1) - 28.06.22 (столбик 2) результат будет выражен следующим:
Столбик 3 (2018 год) - 12 месяцев;
Столбик 4 (2019 год) - 12 месяцев;
Столбик 5 (2020 год) - 12 месяцев;
Столбик 6 (2021 год) -12 месяцев;
Столбик 7 (2022 год) -6 месяцев.
Всего месяцев - 54
Необходимость связана с планированием и расчетами долгосрочных проектов (работ), когда необходимо автоматически (при изменении дат начала или окончания при планировании и расчетах) получать количество месяцев производимых работ в каждом годе, входящим в состав поолного ПЕРИОДА. Фактически формула кажется должна иметь универсальную архитектуру и количество лет будет определять эту формулу с интерпретацией для каждого входящего в полный период года.
В принципе, с учетом срочной необходимости, меня устроит ЦЕЛОЕ число месяцев, поскольку, видимо, сложно определить точное число месяев (не целое).
Я попробовал составить формулу, но у меня получается "дремучий лес" логических условий, до конца дойти не могу...
С надеждой Анатолий.
Применяя формулу: =DATEDIF(F9,G9,"ym";) &"month"&DATEDIF(F9,G9,"md";) &"days" получаю результаты в виде
через функцию разндат вычислил сколько времени проработал на каждом месте, подскажите пожалуйста как получить общий стаж.
Формула считает не корректно.
В месяце 28, 29, 30 или 31 день.
А формула может считать и 32 дня, и 87 дней и т.д.. По идее, по правильному - если идет день следующий за последним днем месяца - то автоматом месяц должен становиться следующим а количество дней обнулится.
Т.е. например стаж - показывается 1 год 1 месяц и 37 дней. - Это ошибка.
Должно показываться 1 год 2 месяца и (там) 6 дней
Вот как сделать этот правильный подсчет с автоматическим пересчетом в правильную сторону?