Excel между дата текущая

Вычисление разности двух дат

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

Предупреждение: Если значение нач_дата больше значения кон_дата, возникнет ошибка #ЧИСЛО!

Разница в днях

=РАЗНДАТ(D9,E9,"d"), результат: 856

В этом примере дата начала находится в ячейке D9, а дата окончания — в ячейке E9. Формула находится в ячейке F9. Параметр «д» возвращает количество полных дней между двумя датами.

Разница в неделях

=(РАЗНДАТ(D13,E13,"d")/7), результат: 122,29

В этом примере дата начала находится в ячейке D13, а дата окончания — в ячейке E13. Параметр «д» возвращает количество дней. Но обратите внимание на /7 в конце. Это делит количество дней на 7, так как в неделе содержится 7 дней. Обратите внимание, что этот результат также должен быть представлен в числовом формате. Нажмите клавиши CTRL+1. Затем щелкните Числовой > Число десятичных знаков: 2.

Разница в месяцах

=РАЗНДАТ(D5,E5,"m"), результат: 28

В этом примере дата начала находится в ячейке D5, а дата окончания — в ячейке E5. В формуле «м» возвращает количество полных месяцев между двумя днями.

Разница в годах

=РАЗНДАТ(D2,E2,"y"), результат: 2

В этом примере дата начала находится в ячейке D2, а дата окончания — в ячейке E2. Параметр «г» возвращает количество полных лет между двумя днями.

Расчет возраста в накопленных годах, месяцах и днях

Вы также можете вычислить возраст или время работы другого человека. Результат может выглядеть так: «2 года, 4 месяца, 5 дней».

1. Используйте функцию РАЗНДАТ, чтобы найти общее количество лет.

=РАЗНДАТ(D17,E17,"y"), результат: 2

В этом примере дата начала находится в ячейке D17, а дата окончания — в ячейке E17. В формуле параметр «г» возвращает количество полных лет между двумя днями.

2. Снова используйте функцию РАЗНДАТ с «гм», чтобы найти месяцы.

=РАЗНДАТ(D17,E17,"ym"), результат: 4

В другой ячейке используйте функцию РАЗНДАТ с параметром «гм». Параметр «гм» возвращает количество оставшихся месяцев с последнего полного года.

3. Используйте другую формулу для поиска дней.

=РАЗНДАТ(D17;E17;"md"), результат: 5

Теперь нужно найти количество оставшихся дней. Для этого мы напишем формулу другого типа, показанную выше. Эта формула вычитает первый день окончания месяца (01.05.2016) из исходной даты окончания в ячейке E17 (06.05.2016). Вот как это делается: сначала функция ДАТА создает дату 01.05.2016. Она создается с помощью года в ячейке E17 и месяца в ячейке E17. 1 обозначает первый день месяца. Результатом функции ДАТА будет 01.05.2016. Затем мы вычитаем эту дату из исходной даты окончания в ячейке E17 (06.05.2016), в результате чего получается 5 дней.

Предупреждение: Не рекомендуется использовать аргумент «мд» функции РАЗНДАТ, так как он может вычислять неточные результаты.

4. Необязательно: объединение трех формул в одну.

=РАЗНДАТ(D17,E17,"y")&" г., "&РАЗНДАТ(D17,E17,"ym")&" мес., "&РАЗНДАТ(D17,E17,"md")&" дн.", результат: 2 г., 4 мес., 5 дн.

Все три вычисления можно поместить в одну ячейку, как в этом примере. Используйте амперсанды, кавычки и текст. Эту формулу дольше вводить, но она содержит в себе все вычисления. Совет. Нажмите клавиши ALT+ВВОД, чтобы ввести разрывы строк в формулу. Это упрощает чтение. Кроме того, если вы не видите всю формулу, нажмите клавиши CTRL+SHIFT+U.

Скачивание примеров

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

Скачать примеры вычислений дат

Другие вычисления даты и времени

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

=РАЗНДАТ(TODAY(),D28,"y"), результат: 984

Обратите внимание, эта статья была написана 6 октября 2016 г.

Используйте функцию ЧИСТРАБДНИ.МЕЖД, если нужно вычислить количество рабочих дней между двумя датами. Вы также можете исключить выходные и праздники.

Прежде чем начать. Решите, нужно ли исключить даты праздников. При исключении введите список дат праздников в отдельной области или на отдельном листе. Поместите каждую дату праздника в собственную ячейку. Затем выделите эти ячейки и нажмите Формулы > Задать имя. Назовите диапазон МоиПраздники и нажмите ОК. Затем создайте формулу с помощью указанных ниже действий.

1. Введите дату начала и окончания.

Дата начала в ячейке D53: 01.01.2016, дата окончания в ячейке E53: 31.12.2016

В этом примере дата начала находится в ячейке D53, а дата окончания — в ячейке E53.

2. В другой ячейке введите формулу следующего вида.

=ЧИСТРАБДНИ.МЕЖД(D53,E53,1), результат: 261

Введите формулу, как в примере выше. Цифра 1 в формуле устанавливает субботы и воскресенья в качестве выходных и исключает их из общего количества.

Примечание. В Excel 2007 нет функции ЧИСТРАБДНИ.МЕЖД. Однако там есть функция ЧИСТРАБДНИ. Указанный выше пример будет выглядеть в Excel 2007 следующим образом: =ЧИСТРАБДНИ(D53;E53). Не нужно указывать цифру 1, так как функция ЧИСТРАБДНИ предполагает, что выходными являются суббота и воскресенье.

3. При необходимости измените цифру 1.

Список Intellisense: 2 — воскресенье, понедельник; 3 — понедельник, вторник и так далее

Если суббота и воскресенье не являются выходными днями, измените 1 на другое числовое значение из списка IntelliSense. Например, значение 2 устанавливает воскресенья и понедельники в качестве выходных дней.

Если вы используете Excel 2007, пропустите этот шаг. Функция ЧИСТРАБДНИ в Excel 2007 всегда предполагает, что выходными являются суббота и воскресенье.

4. Введите имя диапазона праздников.

=ЧИСТРАБДНИ.МЕЖД(D53,E53,1,MyHolidays), результат: 252

Если вы создали имя диапазона праздников в разделе «Прежде чем начать» выше, введите его в конце следующим образом. Если у вас нет праздников, вы можете не использовать точку с запятой и МоиПраздники. Если вы используете Excel 2007, указанный выше пример будет выглядеть так: =ЧИСТРАБДНИ(D53;E53;MyHolidays).

Совет. Если вы не хотите указывать имя диапазона праздников, вместо этого вы можете ввести диапазон, например D35:E39. Или можно ввести в формулу каждый праздник. Например, если ваши праздники приходились на 1 и 2 января 2016 г., введите их следующим образом: =ЧИСТРАБДНИ.МЕЖД(D53;E53;1;{«01.01.2016″;»02.01.2016»}). В Excel 2007 это будет выглядеть так: =ЧИСТРАБДНИ(D53;E53;{«01.01.2016″;»02.01.2016»})

Вы можете вычислить затраченное время, вычитая одно время из другого. Сначала поместите время начала в одну ячейку, а время окончания — в другую. Вводите время полностью, включая час, минуты и пробел перед AM или PM. Ниже рассказывается, как это сделать.

1. Введите время начала и время окончания.

Дата и время начала: 7:15, дата и время окончания: 16:30

В этом примере время начала находится в ячейке D80, а время окончания — в ячейке E80. Введите час, минуты и пробел перед AM или PM.

2. Установите формат «ч:мм AM/PM».

Диалоговое окно "Формат ячеек", настраиваемая команда, тип ч:мм AM/PM

Выберите обе даты и нажмите клавиши CTRL+1 (или Изображение значка кнопки команд в Mac+1 на компьютере Mac). Выберите вариант (все форматы) > ч:мм AM/PM, если он еще не установлен.

3. Вычтите два времени.

=E80-D80, результат: 9:15

В другой ячейке вычтите ячейку времени начала из ячейки времени окончания.

4. Установите формат «ч:мм».

Диалоговое окно "Формат ячеек", настраиваемая команда, тип ч:мм

Нажмите клавиши CTRL+1 (или Изображение значка кнопки команд в Mac+1 на Mac). Выберите (все форматы) > ч:мм, чтобы результат не содержал AM и PM.

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

1. Введите две полные даты со временем.

Дата начала: 01.01.16 13:00, дата окончания 02.01.16 14:00

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

2. Установите формат «14.03.12 1:30 PM».

Диалоговое окно "Формат ячеек", настраиваемая команда, тип 14.03.12 13:30

Выберите обе ячейки и нажмите клавиши CTRL+1 (или Изображение значка кнопки команд в Mac+1 на компьютере Mac). Затем выберите Дата > 14.03.12 1:30 PM. Это не дата, которую вы установили, а просто пример того, как будет выглядеть формат. Обратите внимание, что в версиях до Excel 2016 этот формат может использовать другой пример даты, например 14.03.01 1:30 PM.

3. Вычтите два значения.

=E84-D84, результат: 1,041666667

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

4. Установите формат «[ч]:мм».

Диалоговое окно "Формат ячеек", настраиваемая команда, тип [ч]:мм

Нажмите клавиши CTRL+1 (или Изображение значка кнопки команд в Mac+1 на Mac). Выберите пункт (все форматы). В поле Тип введите [ч]:мм.

Статьи по теме

Функция РАЗНДАТ

Функция ЧИСТРАБДНИ.МЕЖД

ЧИСТРАБДНИ

Дополнительные функции даты и времени

Вычисление разницы во времени

Нужна дополнительная помощь?

Содержание

  • Работа с функциями даты и времени
    • ДАТА
    • РАЗНДАТ
    • ТДАТА
    • СЕГОДНЯ
    • ВРЕМЯ
    • ДАТАЗНАЧ
    • ДЕНЬНЕД
    • НОМНЕДЕЛИ
    • ДОЛЯГОДА
  • Вопросы и ответы

Функции даты и времени в Microsoft Excel

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

Работа с функциями даты и времени

Группа функций даты и времени отвечает за обработку данных, представленных в формате даты или времени. В настоящее время в Excel насчитывается более 20 операторов, которые входят в данный блок формул. С выходом новых версий Excel их численность постоянно увеличивается.

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

  1. Для введения формулы через Мастер функций выделите ячейку, где будет выводиться результат, а затем сделайте щелчок по кнопке «Вставить функцию». Расположена она слева от строки формул.
  2. Перемещение в Мастер функций в Microsoft Excel

  3. После этого происходит активация Мастера функций. Делаем клик по полю «Категория».
  4. Мастер функций в Microsoft Excel

  5. Из открывшегося списка выбираем пункт «Дата и время».
  6. Выбор категории функций в Microsoft Excel

  7. После этого открывается перечень операторов данной группы. Чтобы перейти к конкретному из них, выделяем нужную функцию в списке и жмем на кнопку «OK». После выполнения перечисленных действий будет запущено окно аргументов.

Переход к аргументам функции в Microsoft Excel

Кроме того, Мастер функций можно активировать, выделив ячейку на листе и нажав комбинацию клавиш Shift+F3. Существует ещё возможность перехода во вкладку «Формулы», где на ленте в группе настроек инструментов «Библиотека функций» следует щелкнуть по кнопке «Вставить функцию».

Переход к вставке функции в Microsoft Excel

Имеется возможность перемещения к окну аргументов конкретной формулы из группы «Дата и время» без активации главного окна Мастера функций. Для этого выполняем перемещение во вкладку «Формулы». Щёлкаем по кнопке «Дата и время». Она размещена на ленте в группе инструментов «Библиотека функций». Активируется список доступных операторов в данной категории. Выбираем тот, который нужен для выполнения поставленной задачи. После этого происходит перемещение в окно аргументов.

Переход к формулам в Microsoft Excel

Урок: Мастер функций в Excel

ДАТА

Одной из самых простых, но вместе с тем востребованных функций данной группы является оператор ДАТА. Он выводит заданную дату в числовом виде в ячейку, где размещается сама формула.

Его аргументами являются «Год», «Месяц» и «День». Особенностью обработки данных является то, что функция работает только с временным отрезком не ранее 1900 года. Поэтому, если в качестве аргумента в поле «Год» задать, например, 1898 год, то оператор выведет в ячейку некорректное значение. Естественно, что в качестве аргументов «Месяц» и «День» выступают числа соответственно от 1 до 12 и от 1 до 31. В качестве аргументов могут выступать и ссылки на ячейки, где содержатся соответствующие данные.

Lumpics.ru

Для ручного ввода формулы используется следующий синтаксис:

=ДАТА(Год;Месяц;День)

Функция ДАТА в Microsoft Excel

Близки к этой функции по значению операторы ГОД, МЕСЯЦ и ДЕНЬ. Они выводят в ячейку значение соответствующее своему названию и имеют единственный одноименный аргумент.

РАЗНДАТ

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

=РАЗНДАТ(нач_дата;кон_дата;единица)

Из контекста понятно, что в качестве аргументов «Начальная дата» и «Конечная дата» выступают даты, разницу между которыми нужно вычислить. А вот в качестве аргумента «Единица» выступает конкретная единица измерения этой разности:

  • Год (y);
  • Месяц (m);
  • День (d);
  • Разница в месяцах (YM);
  • Разница в днях без учета годов (YD);
  • Разница в днях без учета месяцев и годов (MD).

Функция РАЗНДАТ в Microsoft Excel

Урок: Количество дней между датами в Excel

ЧИСТРАБДНИ

В отличии от предыдущего оператора, формула ЧИСТРАБДНИ представлена в списке Мастера функций. Её задачей является подсчет количества рабочих дней между двумя датами, которые заданы как аргументы. Кроме того, имеется ещё один аргумент – «Праздники». Этот аргумент является необязательным. Он указывает количество праздничных дней за исследуемый период. Эти дни также вычитаются из общего расчета. Формула рассчитывает количество всех дней между двумя датами, кроме субботы, воскресенья и тех дней, которые указаны пользователем как праздничные. В качестве аргументов могут выступать, как непосредственно даты, так и ссылки на ячейки, в которых они содержатся.

Синтаксис выглядит таким образом:

=ЧИСТРАБДНИ(нач_дата;кон_дата;[праздники])

Аргументы функции ЧИСТОРАБДНИ в Microsoft Excel

ТДАТА

Оператор ТДАТА интересен тем, что не имеет аргументов. Он в ячейку выводит текущую дату и время, установленные на компьютере. Нужно отметить, что это значение не будет обновляться автоматически. Оно останется фиксированным на момент создания функции до момента её перерасчета. Для перерасчета достаточно выделить ячейку, содержащую функцию, установить курсор в строке формул и кликнуть по кнопке Enter на клавиатуре. Кроме того, периодический пересчет документа можно включить в его настройках. Синтаксис ТДАТА такой:

=ТДАТА()

Функция ТДАТА в Microsoft Excel

СЕГОДНЯ

Очень похож на предыдущую функцию по своим возможностям оператор СЕГОДНЯ. Он также не имеет аргументов. Но в ячейку выводит не снимок даты и времени, а только одну текущую дату. Синтаксис тоже очень простой:

=СЕГОДНЯ()

Функция СЕГОДНЯ в Microsoft Excel

Эта функция, так же, как и предыдущая, для актуализации требует пересчета. Перерасчет выполняется точно таким же образом.

ВРЕМЯ

Основной задачей функции ВРЕМЯ является вывод в заданную ячейку указанного посредством аргументов времени. Аргументами этой функции являются часы, минуты и секунды. Они могут быть заданы, как в виде числовых значений, так и в виде ссылок, указывающих на ячейки, в которых хранятся эти значения. Эта функция очень похожа на оператор ДАТА, только в отличии от него выводит заданные показатели времени. Величина аргумента «Часы» может задаваться в диапазоне от 0 до 23, а аргументов минуты и секунды – от 0 до 59. Синтаксис такой:

=ВРЕМЯ(Часы;Минуты;Секунды)

Функция ВРЕМЯ в Microsoft Excel

Кроме того, близкими к этому оператору можно назвать отдельные функции ЧАС, МИНУТЫ и СЕКУНДЫ. Они выводят на экран величину соответствующего названию показателя времени, который задается единственным одноименным аргументом.

ДАТАЗНАЧ

Функция ДАТАЗНАЧ очень специфическая. Она предназначена не для людей, а для программы. Её задачей является преобразование записи даты в обычном виде в единое числовое выражение, доступное для вычислений в Excel. Единственным аргументом данной функции выступает дата как текст. Причем, как и в случае с аргументом ДАТА, корректно обрабатываются только значения после 1900 года. Синтаксис имеет такой вид:

=ДАТАЗНАЧ (дата_как_текст)

Функция ДАТАЗНАЧ в Microsoft Excel

ДЕНЬНЕД

Задача оператора ДЕНЬНЕД – выводить в указанную ячейку значение дня недели для заданной даты. Но формула выводит не текстовое название дня, а его порядковый номер. Причем точка отсчета первого дня недели задается в поле «Тип». Так, если задать в этом поле значение «1», то первым днем недели будет считаться воскресенье, если «2» — понедельник и т.д. Но это не обязательный аргумент, в случае, если поле не заполнено, то считается, что отсчет идет от воскресенья. Вторым аргументом является собственно дата в числовом формате, порядковый номер дня которой нужно установить. Синтаксис выглядит так:

=ДЕНЬНЕД(Дата_в_числовом_формате;[Тип])

Функция ДЕНЬНЕД в Microsoft Excel

НОМНЕДЕЛИ

Предназначением оператора НОМНЕДЕЛИ является указание в заданной ячейке номера недели по вводной дате. Аргументами является собственно дата и тип возвращаемого значения. Если с первым аргументом все понятно, то второй требует дополнительного пояснения. Дело в том, что во многих странах Европы по стандартам ISO 8601 первой неделей года считается та неделя, на которую приходится первый четверг. Если вы хотите применить данную систему отсчета, то в поле типа нужно поставить цифру «2». Если же вам более по душе привычная система отсчета, где первой неделей года считается та, на которую приходится 1 января, то нужно поставить цифру «1» либо оставить поле незаполненным. Синтаксис у функции такой:

=НОМНЕДЕЛИ(дата;[тип])

Функция НОМНЕДЕЛИ в Microsoft Excel

ДОЛЯГОДА

Оператор ДОЛЯГОДА производит долевой расчет отрезка года, заключенного между двумя датами ко всему году. Аргументами данной функции являются эти две даты, являющиеся границами периода. Кроме того, у данной функции имеется необязательный аргумент «Базис». В нем указывается способ вычисления дня. По умолчанию, если никакое значение не задано, берется американский способ расчета. В большинстве случаев он как раз и подходит, так что чаще всего этот аргумент заполнять вообще не нужно. Синтаксис принимает такой вид:

=ДОЛЯГОДА(нач_дата;кон_дата;[базис])

Функция ДОЛЯГОДА в Microsoft Excel

Мы прошлись только по основным операторам, составляющим группу функций «Дата и время» в Экселе. Кроме того, существует ещё более десятка других операторов этой же группы. Как видим, даже описанные нами функции способны в значительной мере облегчить пользователям работу со значениями таких форматов, как дата и время. Данные элементы позволяют автоматизировать некоторые расчеты. Например, по введению текущей даты или времени в указанную ячейку. Без овладения управлением данными функциями нельзя говорить о хорошем знании программы Excel.

excel-segodnyaДоброго дня!

В некоторых случаях при работе с документами в Excel очень нужно, чтобы проставлялась текущая дата: например, вы часто делаете отчеты по одной и той же форме (глаз со временем «замыливается» и их можно перепутать); или, скажем, у вас есть десяток-другой задач и вы каждый день по ним просматриваете как продвигается дело, и сколько дней осталось до завершения…

Для решения всех подобных «загвоздок» в Excel есть несколько специальных формул. Собственно, о них и будет сегодняшняя заметка.

Примечание: скриншоты в статье приведены из Excel 2019 (материал актуален также для версии 2016, 2013).

*

📌 Дополнение!

Если с вашими документами иногда работают посторонние люди, рекомендую некоторые ячейки защищать от изменения — https://ocomp.info/zashhita-yacheek-v-excel.html

*

Работа с датами в Excel

ШАГ 1: вставка текущей даты

Самый простой и быстрый вариант поставить в ячейку текущую дату и время — это воспользоваться функцией «=ТДАТА()» (достаточно скопировать в любую ячейку Excel, разумеется, без кавычек).

См. пример ниже. 👇

Формула "ТДАТА()"

Формула «ТДАТА()»

Альтернативный вариант — использовать формулу «=СЕГОДНЯ()«. Работает аналогично (единственное, по умолчанию, не ставит текущее время).

Формула "СЕГОДНЯ()"

Формула «СЕГОДНЯ()»

*

ШАГ 2: сколько всего дней между двумя датами

Это еще один популярный вопрос…

Определить общее количество дней между двумя датами можно с помощью формулы «=ДНИ(B2;A2)» (где B2 и A2 — конечная и начальная дата, соответственно).

Разумеется, зная значение в днях — легко узнать и значение в годах (достаточно разделить число на 365…).

Ко-во дней посчитано

Ко-во дней посчитано

Кстати, если у вас ячейки имеют формат дат — то можно поступить даже проще: просто вычесть из одной даты другую (как если бы это были числа).

Причем, если у вас в одной из ячеек будет указано время (как в моем примере) — Excel посчитает вплоть до десятых…

Второй вариант

Второй вариант

*

ШАГ 3: определение кол-ва рабочих дней между датами

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

В этом случае может помочь формула «=ЧИСТРАБДНИ(A2;B2)» (где A2 и B2 — начальная дата и конечная, соответственно).

51 рабочий день

51 рабочий день

Кстати, если вам нужно подсветить ячейки красно-зеленым цветом (чтобы сразу же видеть те строки, где, например, горят сроки — рекомендую использовать инструмент «Условное форматирование» в разделе «Главная»). Пример ниже. 👇

Правила выделения ячеек

Правила выделения ячеек

В общем-то, выглядит это все достаточно наглядно (например, те задачи, которым осталось времени на выполнение меньше 4 дней — у меня в отчете подсвечиваются красным. Удобно!)

Примечание: для обновления текущей даты и времени — нажмите сочетание кнопок Ctrl+R.

План отчет!

План-отчет!

*

На этом сегодня пока всё…

Удачной работы!

Первая публикация: 3.10.2019

Корректировка: 3.11.2022

donate

dzen-ya

Полезный софт:

  • видеомонтаж
  • Видео-Монтаж
  • Отличное ПО для создания своих первых видеороликов (все действия идут по шагам!).
    Видео сделает даже новичок!

  • утилита для оптимизации
  • Ускоритель компьютера
  • Программа для очистки Windows от «мусора» (удаляет временные файлы, ускоряет систему, оптимизирует реестр).

На чтение 5 мин Просмотров 2к. Опубликовано 27.02.2022

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

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

Содержание

  1. Стандартный расчет количества дней
  2. С помощью функции ДНИ
  3. С помощью функции РАЗНДАТ
  4. Расчет кол-ва рабочих дней
  5. Расчет кол-ва неполных рабочих дней между двумя датами
  6. Количество понедельников между двумя датами

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

Итак, в Excel есть две функции для вычисления кол-ва дней.

С помощью функции ДНИ

Чтобы получить результат от функции нам понадобится дата начала и дата конца.

Итак, вы указываете эти две даты в аргументах функции и получаете количество дней между ними.

Хороший пример вы можете видеть на картинке ниже:

Используем эту формулу:

=ДНИ(B2;B1)  

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

Эта функция вычислит количество дней между этими датами, но если вы хотите чтобы расчет велся «включительно» с датами начала и конца, то добавьте к результату + 1 (просто пропишите это в функции).

С помощью функции РАЗНДАТ

Эта функция аналогична, её отличие в том, что можно указать больше параметров. То есть больше «подстроить» под ситуацию.

Также можно вычислить кол-во месяцев или лет между датами.

Допустим, мы имеем то что указано на картинке ниже:

Пропишем формулу:

=РАЗНДАТ(B1;B2;"D")  

Эта функция использует три наших аргумента:

  • Дата начала — B1
  • Дата окончания — B2
  • «D» — текстовая строка

Важный момент: этой функции не будет в подсказке при написании названия функции, т.е. если вы будете писать РАЗНДАТ, Excel будет вести себя так, как будто он не знает что это за функция, но это не так.

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

Вот формула, которая даст результат по месяцам, которые будут между датами:

=РАЗНДАТ(B1;B2;"M") 

А эта формула, тоже самое что и прошлая, только вычисляет кол-во лет:

=РАЗНДАТ(B1;B2;"Y")  

Расчет кол-ва рабочих дней

Итак, рабочие дни можно вычислить двумя способами:

  • Функция Excel ЧИСТРАБДНИ — ее следует использовать, если выходные дни — суббота и воскресенье.
  • Функция Excel ЧИСТРАБДНИ.МЕЖД — используйте ее, когда выходные дни отличаются от субботы и воскресенья.

Сначала быстро рассмотрим синтаксис и аргументы фунции ЧИСТРАБДНИ.

Функция Excel ЧИСТРАБДНИ

=ЧИСТРАБДНИ(нач_дата, конеч_дата, [праздники])

  • нач_дата — это дата начала отсчета.
  • end_date — это конечная дата отсчета.
  • [праздники] — (Необязательно) Отдельная дата или диапазон дат, которые не будут учитываться в расчетах.

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

Мы будем использовать эту формулу:

=ЧИСТРАБДНИ(B2;C2;$F$2:$F$6)  

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

Но бывают и другие ситуации, к примеру, в разных странах выходные на неделе строятся по-разному, это может быть пятница и так далее.

Именно для таких ситуаций и появилась функция ЧИСТРАБДНИ.МЕЖД.

Посмотрим что из себя представляет эта функция.

Функция Excel ЧИСТРАБДНИ.МЕЖД

=ЧИСТРАБДНИ.МЕЖД(нач_дата; конеч_дата; [выходные]; [праздники])

  • нач_дата — значение даты, представляющее собой начальную дату.
  • конеч_дата — значение даты, представляющее дату окончания.
  • [нерабочие дни] — (Необязательно) в этом аргументе указываются исключительные дни(праздники и т.д.), если аргумента не будет, выходные останутся по-стандарту(суббота и воскресенье).

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

Допустим, таблица такая же как и в прошлом примере:

Будем использовать формулу:

=ЧИСТРАБДНИ.МЕЖД(B2;C2;7;$F$2:$F$6)  

3 аргумент в функции сообщает Excel, что пятница и суббота выходные.

Также, мы можем использовать ЧИСТРАБДНИ.МЕЖД для расчета выходных между двумя датами.

Она конечно вычисляет кол-во рабочих дней, но мы можем адаптировать это «под себя».

Допустим, таблица все та же:

Формула, которая нам подойдет:

=ДНИ(C2;B2)+1-РАЗНДАТ(B2;C2)

Расчет кол-ва неполных рабочих дней между двумя датами

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

Допустим, у нас есть похожая таблица с данными:

Формула, для нашего случая, будет такой:

=ЧИСТРАБДНИ.МЕЖД($B$3;$C$3;"1010111";$E$3:$E$7)  

Для обозначения выходных дней, мы использовали «1010111».

  • 0 — рабочий день
  • 1 — неполный рабочий день

Первая цифра из этого числа — понедельник, последняя — воскресенье

Грубо говоря, «0000011» значит, что с понедельника по пятницу — рабочие дни, а суббота и воскресенье — нерабочие (выходные).

По той же логике, «1010111» означает, что только вторник и четверг являются рабочими, а остальные 5 дней — нерабочими.

Если вам нужно исключить какие-то дни из расчетов, можете исключать их таким образом.

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

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

Функция, которая выведет кол-во понедельников:

=ЧИСТРАБДНИ(B2;C2;"0111111")  

В этой формуле «0» означает рабочий день, а «1» — нерабочий день.

Формула рассчитывает количество рабочих дней, с учетом того что единственный рабочий день — это понедельник.

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


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

РАЗНДАТ(

)

, английский вариант DATEDIF().

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

Расчет страхового (трудового) стажа в MS EXCEL

.

Функции

РАЗНДАТ(

)

нет в справке EXCEL2007 и в

Мастере функций

(

SHIFT

+

F

3

), но она работает, хотя и не без огрех.

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


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

Аргумент

начальная_дата

должна быть раньше аргумента

конечная_дата

.

Аргумент

способ_измерения

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


Значение


Описание

«d»

разница в днях

«m»

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

«y»

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

«ym»

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

«md»

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

«yd»

разница в днях без учета лет ВНИМАНИЕ! Функция для некоторых версий 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)

. Функция

ЦЕЛОЕ()

округляет значение до меньшего целого и использована для того случая, если исходные даты введены вместе с временем суток (

РАЗНДАТ()

игнорирует время, т.е. дробную часть числа, см. статью

Как Excel хранит дату и время

).


Примечание

: Если интересуют только рабочие дни, то к

оличество рабочих дней

между двумя датами можно посчитать по формуле

=ЧИСТРАБДНИ(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). В остальных случаях формулы эквивалентны. Какую формулу применять? Это решать пользователю в зависимости от условия задачи.

Понравилась статья? Поделить с друзьями:
  • Excel между дата 2007
  • Excel медленно работают макросы
  • Excel медленно работает макрос
  • Excel медленно открывает файлы
  • Excel медиана вариационного ряда