Как посчитать месяц. Функция разндат() - вычисление разности двух дат в днях, месяцах, годах в 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 рабочих дней.

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

Бесплатный онлайн калькулятор Контур.Бухгалтерии вам поможет и подскажет, какое количество дней прошло между двумя заданными датами. Кроме того, если у вас возникла необходимость, вы можете посчитать сколько календарных, выходных или рабочих дней (часов) содержит указанный период года или нескольких лет.

Сколько дней между датами? Инструкция

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

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

Итак, порядок действий:

  1. В полях “Начальная дата” и “Конечная дата” выбираете соответственно начальный и конечный день отсчета, начиная с 2013 года и заканчивая в будущем 2018-м.
  2. Устанавливаете в следующем поле количество рабочих часов в сутках. По умолчанию в этом поле уже стоит 8 часов (40-часовая рабочая неделя), но вы можете эту цифру изменить.
  3. В правой части экрана на баннере вы увидите полученный результат: рабочие дни, календарные дни и рабочие часы между заданными датам. Результаты нужно скопировать и сохранить в своем документе.

Для чего можно использовать калькулятор

  1. Для расчета пени и просрочек по договорам
  2. Как понять эффективность использования какого-нибудь ресурса и предельные сроки использования
  3. Как случайно не назначить сроки выполнения задачи на выходной день
  4. Сколько времени осталось до дедлайна

Пример:

Вы — бухгалтер. Руководитель попросил вас в ближайшие пару минут предоставить данные по количеству рабочих часов, которые должны отработать все сотрудники компании в феврале. Количество работников вы можете легко определить — у вас перед глазами цифры. А вот количество часов нужно считать....А сколько там в феврале дней? А год-то високосный? А какие дни были выходными? А как определить количество дней праздников?

Решение: просто воспользуйтесь нашим виджетом. Всю информацию вы получите автоматически, вам не нужны настольные календари и калькуляторы.

Вам понравился этот калькулятор? Тогда попробуйте другие наши возможности

Хотите вести бухучет, отправлять отчетность и делать расчеты в удобном и простом веб-сервисе? Попробуйте бесплатно целый месяц Контур.Бухгалтерию! Мы быстро вас научим, как сервисом пользоваться и ответим на все вопросы!

Судя по всему это весьма распространенное явление. Сразу же полез в интернет искать онлайн сервис, который позволяет посчитать, сколько лет человеку по дате его рождения .

Как и предвиделось, такие сервисы есть. И не мало. Талантливые PHP-программисты позаботились о «потерявшихся во времени» и написали всевозможные скрипты-калькуляторы для подсчета лет по дате рождения, или просто расчета количества лет, месяцев, дней, часов, минут и даже секунд между двумя датами онлайн.

О некоторых из них я и хочу написать.

Расчет сколько прошло лет, месяцев, дней, часов, минут по дате рождения

Наверняка многие задавались вопросом: «А сколько дней я живу?» . Но не многие потрудились посчитать. Очень уж это утомительное занятие. А вот с помощью этого сайта:

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

Так же сервис выдаст вам, через какое время будет ваш следующий день рождения.

Посчитать дни и годы между двумя датами – калькулятор онлайн

http://planetcalc.ru/274/ — с помощью этого калькулятора вы с точностью до дня сможете посчитать дни и годы между двумя датами в режиме онлайн. Просто задайте нужные данные и сервис выдаст вам точный результат.

Подсчет количества дней от даты до даты

http://www.calculator888.ru/skolko-dnei/ — еще один сайт, где вы точно сможете узнать, сколько лет человеку. Более того, на нем можно посчитать онлайн количество лет, месяцев, дней, часов, минут, секунд, прошедших с одной даты до другой .

Для вычислений длительности временных интервалов удобней всего использовать недокументированную функцию РАЗНДАТ() , английский вариант 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: начальная_дата 25.02.2007, конечная_дата 26.02.2007
Результат: 1 (день).

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

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

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

Примечание : Если интересуют только рабочие дни, то к между двумя датами можно посчитать по формуле =ЧИСТРАБДНИ(B2;A2)

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

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

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

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

При расчете стажа, считается, что сотрудник отработавший все дни месяца - отработал 1 полный месяц. Функция РАЗНДАТ() так не считает!

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


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

Внимание : В справке MS EXCEL (см. раздел Вычисление возраста) имеется кривая формула для вычисления количества месяце между 2-мя датами:

=(ГОД(ТДАТА())-ГОД(A3))*12+МЕСЯЦ(ТДАТА())-МЕСЯЦ(A3)

Если вместо функции ТДАТА() - текущая дата использовать дату 31.10.1961, а в А3 ввести 01.11.1962, то формула вернет 13, хотя фактически прошло 12 месяцев и 1 день (ноябрь и декабрь в 1961г. + 10 месяцев в 1962г.).

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

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

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

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

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

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

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

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

Пример2: начальная_дата 01.04.2007, конечная_дата 01.03.2009
Результат: 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). В остальных случаях формулы эквивалентны. Какую формулу применять? Это решать пользователю в зависимости от условия задачи.

Как выяснилось, довольно часто в быту (и не только) возникает необходимость рассчитать разницу между двумя датами. Мы обратили на это внимание и решили сделать собственный калькулятор, который поможет вам с легкостью проводить подобные вычисления всего в несколько кликов.


Несколько слов о расчете разницы между двумя датами

Оказывается, перед нами довольно часто встает вопрос - "Сколько дней между двумя датами?". Это может пригодиться для того, чтобы узнать сколько дней прошло с момента, когда человек бросил пить или курить. Все мы прекрасно знаем, что когда человек бросает курить, первое время он постоянно считает количество дней (и очень трепетно относится к получившемуся числу), прошедших с того самого счастливого момента, когда он смял и выкинул свою последнюю пачку сигарет. Эти подсчеты могут продолжаться на протяжении месяцев, поэтому считать в уме становится тяжело уже буквально на второй неделе.

Наш калькулятор для расчета разницы между двумя датами призван для того, чтобы не тратить время на сложные вычисления в уме и сделать это в несколько кликов, всего за пару секунд. В рамках данной статьи мы не будем рассказывать про огромное множество других возможных ситуаций, при которых может понадобиться подобный калькулятор. Это может быть что угодно - "сколько дней осталось до конца света?", "сколько дней осталось до летних каникул?", "сколько дней до 1-го сентября, дня рождения, свадьбы" и т.д. Вариантов просто бесчисленное множество и, как видите, данный калькулятор действительно будет очень полезен (по крайней мере мы так надеемся).

Калькулятор расчета разницы между двумя датами

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

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

PHP функция расчета разницы

Функция, которая используется для расчета очень проста:

$days = floor((strtotime("2015-01-01") - strtotime("2010-01-01")) / 86400);

Конкретно в нашем примере мы используем 3 поля ввода для каждой даты и генерируем строку на основе полученных данных таким образом:

$days = abs(floor((strtotime($_POST["y2"]."-".$_POST["m2"]."-".$_POST["d2"]) - strtotime($_POST["y1"]."-".$_POST["m1"]."-".$_POST["d1"])) / 86400));

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

Похожие публикации