Посчитать количество дней от даты. Функция разндат() - вычисление разности двух дат в днях, месяцах, годах в ms excel

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

Статья про на сайте уже есть, и в ней я немного затрагивала даты. Но сейчас давайте рассмотрим данный вопрос подробнее и разберемся, как посчитать количество дней между двумя датами простым способом или используя функцию РАЗНДАТ(), и как определить количество именно рабочих дней.

Способ 1: вычитание

Начнем с самого простого – это отнимем от одной даты вторую, и получим нужное нам значение. Перед этим убедитесь, что формат ячеек, в которые вписаны числа, выбран «Дата» .

Если еще не заполняли их, тогда выделите диапазон, с которым хотите работать и нажмите напротив названия группы «Число» на маленькую стрелочку.

В открывшемся окне слева выберите подходящий нам формат, а потом в основной области определитесь с типом: 14.03.12, 14 мар 12 или другой. Нажимайте «ОК» .


В те ячейки, для которых только что поменяли формат, вводите данные. Я заполнила А1 и В1 . Теперь нужно выбрать любую ячейку (D1 ), в которой установлен общий формат данных, иначе расчеты будут некорректные. Поставьте в нее «=» и нажмите сначала позднюю (В1 ) дату, потом раннюю (А1 ). Чтобы вычислить между ними количество дней, жмите «Enter» .



Способ 2: использование функции

Для этого выделите ячейку, в которой будет результат (В3 ), и посмотрите, чтобы для нее был выбран общий формат.


Для вычисления дней будем использовать функцию РАЗНДАТ() . В нее входят три аргумента: дата начальная и конечная, единица. Единица – это в чем мы хотим получить результат. Сюда подставляется:

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

Ставим в В3 знак равенства, пишем РАЗНДАТ и открываем скобку. Затем выделяем раннюю дату (А1 ), потом позднюю (В1 ), ставим в кавычках подходящую единицу и закрываем скобку. Между всеми аргументами ставьте «;» . Для расчета, нажмите «Enter» .

У меня получилась такая формула:

РАЗНДАТ(A1;B1;"d")


Выбрав в качестве единицы "d" , я получила результат – 111.


Если изменить данное значение, например, на "md" , тогда формула посчитает разницу между 5 и 24 без учета месяцев и годов.

Меняя таким образом данный аргумент, получится вывести точный возраст человека. В одной ячейке будут года "y" , второй месяцы "ym" , третьей дни "md"


Способ 3: считаем рабочие дни

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


ЧИСТРАБДНИ(A5;B5;C5)

В качестве аргументов указываем начальную дату (А5 ), потом конечную (В5 ). Последний аргумент – это праздники (С5 ). Разделяем их «;» .


Нажав «Enter» появится результат, в примере ячейка D5 – 21 день.

Теперь рассмотрим, если в месяце несколько праздников. Например, в январе Новый год и Рождество. Выделяем ячейку (D6 ) и ставим в нее равно. Потом нажимаем в строке формул на букву «f» . Откроется окно «Вставка функции» . В поле «Категория» выберите «Полный алфавитный перечень» и найдите в списке нужную функцию. Жмите «ОК» .


Дальше необходимо выбрать аргументы функции. В «Нач_дата» выбираем начальное значение (А6 ), в «Кон_дата» – конечное (В6 ). В последнем поле вписываем даты праздников в скобках {} и кавычках "" . Потом нажимайте «ОК» .


В результате мы получим такую функцию и значение будет посчитано без учета выходных и указанных праздников:

ЧИСТРАБДНИ(A6;B6;{"01.01.17";"07.01.17"})


Чтобы не прописывать праздники вручную, можно указать в соответствующем поле определенный диапазон. У меня это С6:С7 .


Рабочие дни посчитаются, и функция будет иметь вид:

ЧИСТРАБДНИ(A6;B6;C6:C7)


Теперь сделаем подсчет для последнего месяца. Вводим функцию и заполняем ее аргументы:

ЧИСТРАБДНИ(A8;B8;C8)

В феврале получилось 19 рабочих дней.


Про другие , я написала отдельную статью, и ее можно прочесть, перейдя по ссылке.

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

Расчеты времени постоянно встречаются в повседневной жизни: от вычисления дней до значимой даты до подсчета времени отпуска или периода выплат по банковскому кредиту. Сборник онлайн-калькуляторов поможет вам легко оперировать таким сложным параметром как время.

Время

Управление временем – это не название магического заклинания из компьютерной игры, а вполне себе реальная способность, снискавшая огромную популярность у бизнесменов и инвесторов. Управление временем или – это техника расчета временных отрезков для эффективного выполнения определенного объема работ. Благодаря грамотному и периодов отдыха люди, использующую технику мани-менеджмента, успевают сделать намного больше тех, кто не следит за временем и страдает от .

Естественно, тайм-менеджмент – это наука не только о распределении времени. К наиболее важным навыкам, позволяющим грамотно организовать работу, относятся:

  • и управлять ресурсами;
  • расставлять приоритеты и ;
  • распределять время и анализировать результаты.

Делегирование – это перепоручение работы подчиненным или коллегам. Многие неэффективные руководители полагают, что никто не сделает лучше, чем они сами. Естественно, что заваленные кучей незначимой работы они не успевают выполнять приоритетные задачи, в результате чего и становятся неэффективными.

Поиск приоритетов – не менее важная вещь. гласит, что 80 % результата обеспечивают 20 % усилий. На практике это означает, что важно вовремя выполнять только те задачи, от которых зависит 80 % успеха. Как правило, таких задач немного, не строго 20 % как обещает принцип Парето, но обычно в диапазоне от 20 до 40 %. Именно умение отделять зерна от плевел и создают продуктивных руководителей и бизнесменов.

Наиболее известной, эффективной и в тоже время самой простой техникой считается «Помодоро». Это прием тайм-менеджмента, согласно которому работа выполняется через строго отведенные промежутки времени (обычно 20 минут), каждый из которых сопровождается пятиминутным отдыхом. Свое название техника «Помодоро» получила потому, что ее создатель отмерял промежутки времени при помощи кухонного таймера в виде помидора. С тех пор модернизированные версии тайм-менеджмента легли в основу успеха видных представителей бизнеса.

Расчет времени

Использовать принципы мани-менеджмента можно не только при решении ежедневных задач, но и при планировании крупных проектов, выполнение которых занимает недели или месяцы. Прежде всего следует выяснить, к какому сроку необходимо сдать проект или какое количество времени на него выделено. Рассмотрим подробнее.

Количество дней между двумя датами

Данный инструмент позволяет определить количество дней, укладываемых между двумя датами. К примеру, 20 октября 2017 года вам задали проект, который необходимо закончить к 18 января 2018 года. Идти к календарю и считать время не слишком удобно и проще воспользоваться калькулятором: достаточно выбрать тип программы и вбить обе даты. В ответе видим, что на выполнение плана у вас есть 2 месяца и 29 дней. Не слишком информативно при планировании. Программа выражает это время так же в днях, неделях или месяцах. Смотрим. У вас есть ровно 90 дней или 12 рабочих недель. С этим уже можно построить эффективную систему тайм-менеджмента и не допустить дедлайна.

Какая дата будет через n дней

Еще один удобный инструмент для эффективной работы. Крупный проект на работе могут поручить с пометкой «выполнить в течение 50 дней после принятия заказа». Это большое количество времени, но вновь бежать к календарю и высчитывать его не слишком удобно. Используем калькулятор. Допустим, заказ был принят в работу 28 апреля 2017 года. До какого дня его требуется сдать заказчику? Поменяем тип калькулятора и вычислим дату дедлайна. Это будет 17 июня 2017, суббота. Имея под рукой общее количество дней и дату икс, вы можете легко распределить силы для своевременного выполнения работы.

Какая дата была n дней назад

Данный калькулятор не пригодится вам в работе, но наверняка придет на помощь в личной жизни. Представьте, что вы получили смс-сообщение, в котором ваша пассия поздравляет вас с 100 днем совместной жизни. Это важная дата, которую забывать не стоит, поэтому лучше воспользоваться программой и узнать ее. Вы получили смску 4 июля 2017 года, теперь легко узнать, когда же вы съехались со своей пассией. Итак, выбираем тип калькулятора, вводим дату и юбилейные 100 дней. Ваша памятная дата – 26 марта 2017, воскресенье. Стоит обвести эту дату в календаре.

Временные величины

Данный калькулятор позволяет перевести одни временные величины в другие. При помощи программы можно выразить минуты в дни, недели в года или века в тысячелетия. На практике это может пригодиться при расчете рабочих часов для фрилансеров и свободных художников. Например, у вас есть 28 рабочих дней на выполнение очередного заказа. Это 672 часа. Отнимем время на сон 28 × 8 = 224, время на перерывы и отдых 28 × 4 = 112 и получим, что у вас есть 336 часов на эффективную работу. С этим уже можно работать и использовать техники тайм-менеджмента для продуктивного труда.

Сумма/разница во времени

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

Для вычислений длительности временных интервалов удобней всего использовать недокументированную функцию РАЗНДАТ() , английский вариант DATEDIF().

Этой функции нет в справке EXCEL2007 и в Мастере функций (SHIFT + F 3 ), но она работает, хотя и не без огрех.

Синтаксис функции:

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

Аргумент начальная_дата должна быть раньше аргумента конечная_дата .

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

Значение

Описание

разница в полных днях

разница в полных месяцах

разница в полных годах

разница в полных месяцах без учета лет

разница в днях без учета месяцев и лет
ВНИМАНИЕ! Функция для некоторых версий EXCEL возвращает ошибочное значение, если день начальной даты больше дня конечной даты (например, в EXCEL 2007 при сравнении дат 28.02.2009 и 01.03.2009 результат будет 4 дня, а не 1 день). Избегайте использования функции с этим аргументом. Альтернативная формула приведена ниже.

разница в днях без учета лет
ВНИМАНИЕ! Функция для некоторых версий EXCEL возвращает ошибочное значение. Избегайте использования функции с этим аргументом.

Ниже приведено подробное описание всех 6 значений аргумента способ_измерения , а также альтернативных формул (функцию РАЗНДАТ() можно заменить другими формулами (правда достаточно громоздкими). Это сделано в файле примера ).

В файле примера значение аргумента начальная_дата помещена в ячейке А2 , а значение аргумента конечная_дата – в ячейке В2 .

1. Разница в полных днях ("d")

Формула =РАЗНДАТ(A2;B2;"d") вернет простую разницу в днях между двумя датами.

Пример1: начальная_дата 01.02.2007, конечная_дата 01.03.2009
Результат1: 759 (дней);

Пример2: начальная_дата 28.02.2007, конечная_дата 01.03.2007
Результат2: 1 (день);

Пример3: начальная_дата 28.02.2008, конечная_дата 01.03.2008
Результат3: 2 (дня), т.к. 2008 год - високосный;

Количество рабочих дней между двумя датами можно посчитать по формуле =ЧИСТРАБДНИ(B2;A2)

2. Разница в полных месяцах ("m")

Формула =РАЗНДАТ(A2;B2;"m") вернет количество полных месяцев между двумя датами.

Пример1: начальная_дата 01.02.2007, конечная_дата 01.03.2007
Результат1: 1 (месяц)

Пример2: начальная_дата 02.02.2007, конечная_дата 01.03.2007
Результат2: 0

Пример3: начальная_дата 01.02.2007, конечная_дата 01.03.2009
Результат3: 25 месяцев


=12*(ГОД(B2)-ГОД(A2))-(МЕСЯЦ(A2)-МЕСЯЦ(B2))-(ДЕНЬ(B2)<ДЕНЬ(A2))

Формула =(ГОД(B2)-ГОД(A2))*12+МЕСЯЦ(B2)-МЕСЯЦ(A2) приведенная в справке EXCEL, дает количество месяцев между двумя датами, но не количество полных месяцев. Т.е. для дат 31.10.1961 и 01.11.1962 формула вернет 13, хотя фактически прошло 12 месяцев и 1 день.

3. Разница в полных годах ("y")

Формула =РАЗНДАТ(A2;B2;"y") вернет количество полных лет между двумя датами.

Пример1: начальная_дата 01.02.2007, конечная_дата 01.03.2009
Результат1: 2 (года)

Пример2: начальная_дата 01.04.2007, конечная_дата 01.03.2009
Результат2: 1 (год)

Формула может быть заменена альтернативным выражением:
=ЕСЛИ(ДАТА(ГОД(B2);МЕСЯЦ(A2);ДЕНЬ(A2))<=B2;
ГОД(B2)-ГОД(A2);ГОД(B2)-ГОД(A2)-1)

4. Разница в полных месяцах без учета лет ("ym")

Формула =РАЗНДАТ(A2;B2;"ym") вернет количество полных месяцев между двумя датами без учета лет (см. примеры ниже).

Пример1: начальная_дата 01.02.2007, конечная_дата 01.03.2009
Результат1: 1 (месяц), т.к. сравниваются конечная дата 01.03.2009 и модифицированная начальная дата 01.02.2009 (год начальной даты заменяется годом конечной даты, т.к. 01.02 меньше чем 01.03)

Пример2: начальная_дата 01.04.2007, конечная_дата 01.03.2009
Результат2: 11 (месяцев), т.к. сравниваются конечная дата 01.03.2009 и модифицированная начальная дата 01.04.2008 (год начальной даты заменяется годом конечной даты за вычетом 1 года , т.к. 01.04 больше чем 01.03)

Формула может быть заменена альтернативным выражением:
=ОСТАТ(C7;12)
В ячейке С7 должна содержаться разница в полных месяцах (см. п.2).

5. Разница в днях без учета месяцев и лет ("md")

Формула =РАЗНДАТ(A2;B2;"md") вернет количество дней между двумя датами без учета месяцев и лет. Использовать функцию РАЗНДАТ() с этим аргументом не рекомендуется (см. примеры ниже).

Пример1: начальная_дата 01.02.2007, конечная_дата 06.03.2009
Результат1: 5 (дней), т.к. сравниваются конечная дата 06.03.2009 и модифицированная начальная дата 01.03 .2009 (год и месяц начальной даты заменяется годом и месяцем конечной даты, т.к. 01 меньше чем 06)

Пример2: начальная_дата 28.02.2007, конечная_дата 28.03.2009
Результат2: 0, т.к. сравниваются конечная дата 28.03.2009 и модифицированная начальная дата 28.03 .2009 (год и месяц начальной даты заменяется годом и месяцем конечной даты)

Пример3: начальная_дата 28.02.2009, конечная_дата 01.03.2009
Результат3: 4 (дня) - совершенно непонятный и НЕПРАВИЛЬНЫЙ результат. Ответ должен быть =1. Более того, результат вычисления зависит от версии EXCEL.

Версия EXCEL 2007 с SP3:


Результат – 143 дня! Больше чем дней в месяце!


Версия EXCEL 2007:


Разница между 28.02.2009 и 01.03.2009 – 4 дня!


Причем в EXCEL 2003 с SP3 формула возвращает верный результат 1 день. Для значений 31.12.2009 и 01.02.2010 результат вообще отрицательный (-2 дня)!

Не советую использовать формулу с вышеуказанным значением аргумента. Формула может быть заменена альтернативным выражением:
=ЕСЛИ(ДЕНЬ(A2)>ДЕНЬ(B2);
ДЕНЬ(КОНМЕСЯЦА(ДАТАМЕС(B2;-1);0))-ДЕНЬ(A2)+ДЕНЬ(B2);
ДЕНЬ(B2)-ДЕНЬ(A2))

Данная формула лишь эквивалетное (в большинстве случаев) выражение для РАЗНДАТ() с параметром md. О корректности этой формуле читайте в разделе "Еще раз о кривизне РАЗНДАТ()" ниже.

6. Разница в днях без учета лет ("yd")

Формула =РАЗНДАТ(A2;B2;"yd") вернет количество дней между двумя датами без учета лет. Использовать ее не рекомендуется по причинам, изложенным в предыдущем пункте.


Результат, возвращаемый формулой =РАЗНДАТ(A2;B2;"yd") зависит от версии EXCEL.

Формула может быть заменена альтернативным выражением:
=ЕСЛИ(ДАТА(ГОД(B2);МЕСЯЦ(A2);ДЕНЬ(A2))>B2;
B2-ДАТА(ГОД(B2)-1;МЕСЯЦ(A2);ДЕНЬ(A2));
B2-ДАТА(ГОД(B2);МЕСЯЦ(A2);ДЕНЬ(A2)))

Еще раз о кривизне РАЗНДАТ()

Найдем разницу дат 16.03.2015 и 30.01.15. Функция РАЗНДАТ() с параметрами md и ym подсчитает, что разница составляет 1 месяц и 14 дней. Так ли это на самом деле?


Имея формулу, эквивалентную РАЗНДАТ() , можно понять ход вычисления. Очевидно, что в нашем случае количество полных месяцев между датами = 1, т.е. весь февраль. Для вычисления дней, функция находит количество дней в предыдущем месяце относительно конечной даты, т.е. 28 (конечная дата принадлежит марту, предыдущий месяц - февраль, а в 2015г. в феврале было 28 дней). После этого отнимает день начала и прибавляет день конечной даты =ДЕНЬ(КОНМЕСЯЦА(ДАТАМЕС(B6;-1);0))-ДЕНЬ(A6)+ДЕНЬ(B6) , т.е. 28-30+16=14. На наш взгляд, между датами все же 1 полный месяц и все дни марта, т.е 16 дней, а не 14! Эта ошибка проявляется, когда в предыдущем месяце относительно конечной даты, дней меньше, чем дней начальной даты. Как выйти из этой ситуации?

Модифицируем формулу для расчета дней разницы без учета месяцев и лет:

=ЕСЛИ(ДЕНЬ(A18)>ДЕНЬ(B18);ЕСЛИ((ДЕНЬ(КОНМЕСЯЦА(ДАТАМЕС(B18;-1);0))-ДЕНЬ(A18))<0;ДЕНЬ(B18);ДЕНЬ(КОНМЕСЯЦА(ДАТАМЕС(B18;-1);0))-ДЕНЬ(A18)+ДЕНЬ(B18));ДЕНЬ(B18)-ДЕНЬ(A18))


При применении новой функции необходимо учитывать, что разница в днях будет одинаковой для нескольких начальных дат (см. рисунок выше, даты 28-31.01.2015). В остальных случаях формулы эквивалентны. Какую формулу применять? Это решать пользователю в зависимости от условия задачи.