Содержание
- Расчет количества дней
- Способ 1: простое вычисление
- Способ 2: функция РАЗНДАТ
- Способ 3: вычисление количеств рабочих дней
- Вопросы и ответы
Для выполнения определенных задач в Excel нужно определять, сколько дней прошло между некоторыми датами. К счастью, у программы имеются инструменты, которые способны решить данный вопрос. Давайте выясним, какими способами можно посчитать разность дат в Экселе.
Расчет количества дней
Прежде, чем начать работать с датами, нужно отформатировать ячейки под данный формат. В большинстве случаев, при введении комплекта символов, похожего на дату, ячейка сама переформатируется. Но лучше все-таки сделать это вручную, чтобы подстраховать себя от неожиданностей.
- Выделяем пространство листа, на котором вы планируете производить вычисления. Кликаем правой кнопкой мыши по выделению. Активируется контекстное меню. В нём выбираем пункт «Формат ячейки…». Как вариант, можно набрать на клавиатуре сочетание клавиш Ctrl+1.
- Открывается окно форматирования. Если открытие произошло не во вкладке «Число», то следует в неё перейти. В блоке параметров «Числовые форматы» выставляем переключатель в позицию «Дата». В правой части окна выбираем тот тип данных, с которым собираемся работать. После этого, чтобы закрепить изменения, жмем на кнопку «OK».
Теперь все данные, которые будут содержаться в выделенных ячейках, программа будет распознавать как дату.
Способ 1: простое вычисление
Проще всего вычислить разность дней между датами с помощью обычной формулы.
- Записываем в отдельные ячейки отформатированного диапазона даты, разность между которыми нужно вычислить.
- Выделяем ячейку, в которой будет выводиться результат. В ней должен быть установлен общий формат. Последнее условие очень важно, так как, если в этой ячейке стоит формат даты, то в таком случае и результат будет иметь вид «дд.мм.гг» или другой, соответствующий данному формату, что является некорректным итогом расчетов. Текущий формат ячейки или диапазона можно просмотреть, выделив его во вкладке «Главная». В блоке инструментов «Число» находится поле, в котором отображается данный показатель.
Если в нем стоит значение, отличное от «Общий», то в таком случае, как и в предыдущий раз, с помощью контекстного меню запускаем окно форматирования. В нем во вкладке «Число» устанавливаем вид формата «Общий». Жмем на кнопку «OK».
- В отформатированную под общий формат ячейку ставим знак «=». Кликаем по ячейке, в которой расположена более поздняя из двух дат (конечная). Далее жмем на клавиатуре знак «-». После этого выделяем ячейку, в которой содержится более ранняя дата (начальная).
- Чтобы увидеть, сколько времени прошло между этими датами, жмем на кнопку Enter. Результат отобразится в ячейке, которая отформатирована под общий формат.
Способ 2: функция РАЗНДАТ
Для вычисления разности в датах можно также применять специальную функцию РАЗНДАТ. Проблема в том, что в списке Мастера функций её нет, поэтому придется вводить формулу вручную. Её синтаксис выглядит следующим образом:
=РАЗНДАТ(начальная_дата;конечная_дата;единица)
«Единица» — это формат, в котором в выделенную ячейку будет выводиться результат. От того, какой символ будет подставлен в данный параметр, зависит, в каких единицах будет возвращаться итог:
- «y» — полные года;
- «m» — полные месяцы;
- «d» — дни;
- «YM» — разница в месяцах;
- «MD» — разница в днях (месяцы и годы не учитываются);
- «YD» — разница в днях (годы не учитываются).
Так как нам нужно рассчитать разницу в количестве дней между датами, то наиболее оптимальным решением будет применение последнего варианта.
Также нужно обратить внимание, что, в отличие от способа с применением простой формулы, описанного выше, при использовании этой функции на первом месте должна находиться начальная дата, а конечная – на втором. Иначе расчеты будут некорректными.
- Записываем формулу в выбранную ячейку, согласно её синтаксису, описанному выше, и первичным данным в виде начальной и конечной даты.
- Для того, чтобы произвести расчет, жмем кнопку Enter. После этого результат, в виде числа обозначающего количество дней между датами, будет выведен в указанную ячейку.
Способ 3: вычисление количеств рабочих дней
В Экселе также имеется возможность произвести вычисление рабочих дней между двумя датами, то есть, исключая выходные и праздничные. Для этого используется функция ЧИСТРАБНИ. В отличие от предыдущего оператора, она присутствует в списке Мастера функций. Синтаксис у этой функции следующий:
=ЧИСТРАБДНИ(нач_дата;кон_дата;[праздники])
В этой функции основные аргументы, такие же, как и у оператора РАЗНДАТ – начальная и конечная дата. Кроме того, имеется необязательный аргумент «Праздники».
Вместо него следует подставлять даты праздничных нерабочих дней, если таковые имеются за охватываемый период. Функция производит расчет всех дней указанного диапазона, исключая субботы, воскресенья, а также те дни, которые добавлены пользователем в аргумент «Праздники».
- Выделяем ячейку, в которой будет находиться итог вычисления. Кликаем по кнопке «Вставить функцию».
- Открывается Мастер функций. В категории «Полный алфавитный перечень» или «Дата и время» ищем элемент «ЧИСТРАБДНИ». Выделяем его и жмем на кнопку «OK».
- Открывается окно аргументов функции. Вводим в соответствующие поля дату начала и конца периода, а также даты праздничных дней, если таковые имеются. Жмем на кнопку «OK».
После указанных выше манипуляций в предварительно выделенной ячейке отобразится количество рабочих дней за указанный период.
Урок: Мастер функций в Excel
Как видим, программа Excel предоставляет своим пользователем довольно удобный инструментарий для расчета количества дней между двумя датами. При этом, если нужно рассчитать просто разницу в днях, то более оптимальным вариантом будет применение простой формулы вычитания, а не использование функции РАЗНДАТ. А вот если требуется, например, подсчитать количество рабочих дней, то тут на помощь придет функция ЧИСТРАБДНИ. То есть, как всегда, пользователю следует определиться с инструментом выполнения после того, как он поставил конкретную задачу.
Вычисление разности двух дат
Используйте функцию РАЗНДАТ, если нужно вычислить разницу двух дат. Сначала поместите дату начала в одну ячейку, а дату окончания — в другую. Затем введите формулу, например одну из следующих.
Предупреждение: Если значение нач_дата больше значения кон_дата, возникнет ошибка #ЧИСЛО!
Разница в днях
В этом примере дата начала находится в ячейке D9, а дата окончания — в ячейке E9. Формула находится в ячейке F9. Параметр «д» возвращает количество полных дней между двумя датами.
Разница в неделях
В этом примере дата начала находится в ячейке D13, а дата окончания — в ячейке E13. Параметр «д» возвращает количество дней. Но обратите внимание на /7 в конце. Это делит количество дней на 7, так как в неделе содержится 7 дней. Обратите внимание, что этот результат также должен быть представлен в числовом формате. Нажмите клавиши CTRL+1. Затем щелкните Числовой > Число десятичных знаков: 2.
Разница в месяцах
В этом примере дата начала находится в ячейке D5, а дата окончания — в ячейке E5. В формуле «м» возвращает количество полных месяцев между двумя днями.
Разница в годах
В этом примере дата начала находится в ячейке D2, а дата окончания — в ячейке E2. Параметр «г» возвращает количество полных лет между двумя днями.
Расчет возраста в накопленных годах, месяцах и днях
Вы также можете вычислить возраст или время работы другого человека. Результат может выглядеть так: «2 года, 4 месяца, 5 дней».
1. Используйте функцию РАЗНДАТ, чтобы найти общее количество лет.
В этом примере дата начала находится в ячейке D17, а дата окончания — в ячейке E17. В формуле параметр «г» возвращает количество полных лет между двумя днями.
2. Снова используйте функцию РАЗНДАТ с «гм», чтобы найти месяцы.
В другой ячейке используйте функцию РАЗНДАТ с параметром «гм». Параметр «гм» возвращает количество оставшихся месяцев с последнего полного года.
3. Используйте другую формулу для поиска дней.
Теперь нужно найти количество оставшихся дней. Для этого мы напишем формулу другого типа, показанную выше. Эта формула вычитает первый день окончания месяца (01.05.2016) из исходной даты окончания в ячейке E17 (06.05.2016). Вот как это делается: сначала функция ДАТА создает дату 01.05.2016. Она создается с помощью года в ячейке E17 и месяца в ячейке E17. 1 обозначает первый день месяца. Результатом функции ДАТА будет 01.05.2016. Затем мы вычитаем эту дату из исходной даты окончания в ячейке E17 (06.05.2016), в результате чего получается 5 дней.
Предупреждение: Не рекомендуется использовать аргумент «мд» функции РАЗНДАТ, так как он может вычислять неточные результаты.
4. Необязательно: объединение трех формул в одну.
Все три вычисления можно поместить в одну ячейку, как в этом примере. Используйте амперсанды, кавычки и текст. Эту формулу дольше вводить, но она содержит в себе все вычисления. Совет. Нажмите клавиши ALT+ВВОД, чтобы ввести разрывы строк в формулу. Это упрощает чтение. Кроме того, если вы не видите всю формулу, нажмите клавиши CTRL+SHIFT+U.
Скачивание примеров
Вы можете скачать образец книги со всеми примерами из этой статьи. Вы можете воспользоваться ими или создать собственные формулы.
Скачать примеры вычислений дат
Другие вычисления даты и времени
Как показано выше, функция РАЗНДАТ вычисляет разницу между датой начала и датой окончания. Однако вместо ввода определенных дат в формуле можно также использовать функцию СЕГОДНЯ(). При использовании функции СЕГОДНЯ() Excel в качестве даты использует текущую дату компьютера. Имейте в виду, что эта переменная будет меняться при повторном открыть файле в будущем.
Обратите внимание, эта статья была написана 6 октября 2016 г.
Используйте функцию ЧИСТРАБДНИ.МЕЖД, если нужно вычислить количество рабочих дней между двумя датами. Вы также можете исключить выходные и праздники.
Прежде чем начать. Решите, нужно ли исключить даты праздников. При исключении введите список дат праздников в отдельной области или на отдельном листе. Поместите каждую дату праздника в собственную ячейку. Затем выделите эти ячейки и нажмите Формулы > Задать имя. Назовите диапазон МоиПраздники и нажмите ОК. Затем создайте формулу с помощью указанных ниже действий.
1. Введите дату начала и окончания.
В этом примере дата начала находится в ячейке D53, а дата окончания — в ячейке E53.
2. В другой ячейке введите формулу следующего вида.
Введите формулу, как в примере выше. Цифра 1 в формуле устанавливает субботы и воскресенья в качестве выходных и исключает их из общего количества.
Примечание. В Excel 2007 нет функции ЧИСТРАБДНИ.МЕЖД. Однако там есть функция ЧИСТРАБДНИ. Указанный выше пример будет выглядеть в Excel 2007 следующим образом: =ЧИСТРАБДНИ(D53;E53). Не нужно указывать цифру 1, так как функция ЧИСТРАБДНИ предполагает, что выходными являются суббота и воскресенье.
3. При необходимости измените цифру 1.
Если суббота и воскресенье не являются выходными днями, измените 1 на другое числовое значение из списка IntelliSense. Например, значение 2 устанавливает воскресенья и понедельники в качестве выходных дней.
Если вы используете Excel 2007, пропустите этот шаг. Функция ЧИСТРАБДНИ в Excel 2007 всегда предполагает, что выходными являются суббота и воскресенье.
4. Введите имя диапазона праздников.
Если вы создали имя диапазона праздников в разделе «Прежде чем начать» выше, введите его в конце следующим образом. Если у вас нет праздников, вы можете не использовать точку с запятой и МоиПраздники. Если вы используете 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. Введите время начала и время окончания.
В этом примере время начала находится в ячейке D80, а время окончания — в ячейке E80. Введите час, минуты и пробел перед AM или PM.
2. Установите формат «ч:мм AM/PM».
Выберите обе даты и нажмите клавиши CTRL+1 (или +1 на компьютере Mac). Выберите вариант (все форматы) > ч:мм AM/PM, если он еще не установлен.
3. Вычтите два времени.
В другой ячейке вычтите ячейку времени начала из ячейки времени окончания.
4. Установите формат «ч:мм».
Нажмите клавиши CTRL+1 (или +1 на Mac). Выберите (все форматы) > ч:мм, чтобы результат не содержал AM и PM.
Чтобы вычислить время между двумя датами со временем, можно просто вычесть одно значение из другого. Однако необходимо применить форматирование к каждой ячейке, чтобы Excel возвращал нужный результат.
1. Введите две полные даты со временем.
В одной ячейке введите полную дату и время начала. А в другой ячейке введите полную дату и время окончания. Каждая ячейка должна содержать месяц, день, год, час, минуты, и пробел перед AM или PM.
2. Установите формат «14.03.12 1:30 PM».
Выберите обе ячейки и нажмите клавиши CTRL+1 (или +1 на компьютере Mac). Затем выберите Дата > 14.03.12 1:30 PM. Это не дата, которую вы установили, а просто пример того, как будет выглядеть формат. Обратите внимание, что в версиях до Excel 2016 этот формат может использовать другой пример даты, например 14.03.01 1:30 PM.
3. Вычтите два значения.
В другой ячейке вычтите ячейку даты и времени начала из даты и времени окончания. Скорее всего, результат будет выглядеть как число с десятичным знаком. Вы исправите это на следующем шаге.
4. Установите формат «[ч]:мм».
Нажмите клавиши CTRL+1 (или +1 на Mac). Выберите пункт (все форматы). В поле Тип введите [ч]:мм.
Статьи по теме
Функция РАЗНДАТ
Функция ЧИСТРАБДНИ.МЕЖД
ЧИСТРАБДНИ
Дополнительные функции даты и времени
Вычисление разницы во времени
Нужна дополнительная помощь?
Для вычислений длительности временных интервалов удобней всего использовать недокументированную функцию
РАЗНДАТ(
)
, английский вариант 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). В остальных случаях формулы эквивалентны. Какую формулу применять? Это решать пользователю в зависимости от условия задачи.
Skip to content
Из этого обзора вы узнаете несколько быстрых и простых способов подсчета, сколько дней проходит между двумя датами в Excel.
Вам интересно, сколько составляет разница в днях, месяцах и годах между двумя датами? Может быть, вам нужно знать количество дней между сегодняшним днем и какой-либо точкой в прошлом или будущем?
Какова бы ни была ваша проблема, один из приведенных ниже примеров в Excel наверняка подскажет вам решение.
- Простой калькулятор дней
- Как рассчитать разницу в днях?
- Расчёт разницы между датами при помощи функции РАЗНДАТ (DATEDIF)
- Разница в днях
- В полных месяцах
- В полных годах
- В полных месяцах без учёта лет
- Разница в днях без учета месяцев и лет
- В днях без учёта лет
- Как посчитать разницу в днях, месяцах и годах
- Подсчёт с помощью функции ДНИ
- Как рассчитать количество дней между сегодняшним днем и другой датой
- Мастер даты и времени — простой способ создавать формулы разницы дат в Excel
Простой калькулятор дней.
Если вы ищете быстрый ответ, просто укажите две даты в соответствующих ячейках, и наш калькулятор покажет вам, сколько суток между ними:
Хотите узнать формулу, которая рассчитала эти результаты? Это так же просто, как =B3-B2:)
Обратите внимание, что нужно четко знать, что именно вы хотите подсчитать: «дни включительно» или «дни между».
Кроме того, прежде чем выполнять операции с датой-временем, нужно установить правильный формат в ячейках вашей таблицы. Чаще всего Эксель сам подбирает нужный формат представления данных, но все же лучше подстраховаться.
Для этого выберите клетку или диапазон ячеек с числами, которые вы хотите представить как даты, и нажмите комбинацию клавиш Ctrl + 1, чтобы открыть диалоговое окно «Формат ячеек». На вкладке «Числовые форматы» в пункте «Дата», выберите подходящий для вас внешний вид в разделе «Тип» и нажмите кнопку «ОК».
Далее вы найдете подробное объяснение того, как работает эта формула, и узнаете несколько других способов вычисления.
Как рассчитать разницу в днях?
Самый простой способ рассчитать дни между датами в Эксель — вычесть одну из другой:
= Более новая — Более старая
Как мы уже сказали ранее, чтобы узнать, сколько времени пройдет в периоде между ячейками В3 и B2, используйте следующую формулу:
=B3 — В2
где В2 — более ранняя, а B3 — более.
Результатом подсчета является целое число, которое представляет количество дней внутри временного интервала.
Однако, будьте здесь внимательны: при подобном подсчете отработанных дней в том случае, если человек работал и в первый, и в последний день, то 1 день будет «потерян». Добавьте в вашу формулу +1 день.
Как работает эта формула?
Как вы, вероятно, знаете, Microsoft Excel хранит даты в виде порядковых номеров, начинающихся с 1 января 1900 года, которому соответствует номер 1. В этой системе 2 января 1900 года сохраняется как число 2, 3 января 1900 года как 3 и так далее. Таким образом, вычитая одну дату из другой, вы фактически вычитаете целые числа, представляющие их.
В нашем примере формула в C5 на самом деле вычитает 43892 (числовое значение 2 марта 2020г.) из 43900 (числовое значение 10 марта 2020г.) и возвращает результат 8 дней.
Положительный момент этого метода в том, что он отлично работает во всех случаях, независимо от того, какая дата старше, а какая новее. Если вы вычитаете более позднюю дату из более ранней, то формула просто возвращает разницу в виде отрицательного числа.
Рассчитать разницу между датами в Excel с помощью РАЗНДАТ (DATEDIF).
Другой способ — как в Экселе посчитать дни в заданном временном интервале — использование функции РАЗНДАТ (в английском варианте – DATEDIF), которая специально разработана для расчета разности во времени и представления её в различных единицах: дни, месяцы и годы.
А вот ее синтаксис:
= РАЗНДАТ(дата_нач; дата_кон; аргумент)
где
дата_нач и дата_кон — две временных отметки, разницу между которыми необходимо рассчитать,
аргумент – указывает, как представить результат; может иметь одно из следующих значений:
- Y Число полных лет.
- M Число полных месяцев.
- D Число дней.
- MD Разница в днях (значения месяца и года не учитываются).
- YM Разница в месяцах (значения дня и года не учитываются).
- YD Разница в днях, игнорируя значения года.
Чтобы получить количество дней между двумя датами, укажите момент начала в первом аргументе, срок окончания во втором, и «d» в последнем третьем:
РАЗНДАТ(дата_нач; дата_кон; «d»)
DATEDIF (start_date, end_date, «d»)
Примечание. РАЗНДАТ (DATEDIF) — недокументированная функция, то есть ее нет в мастере функций в Excel. Вы не сможете ее вставить при помощи кнопки fx или меню Вставка — Функция. Чтобы создать формулу РАЗНДАТ в таблице Экселя, вам нужно вписать ее название руками и ввести все аргументы вручную, подсказок ввода не будет.
В ней вы можете указывать исходные данные различными способами, такими как:
- Ссылки на ячейки. Например, следующая формула вернет количество дней между A3 и B3:
=РАЗНДАТ(A3; B3; «D»)
Текстовые выражения. Excel понимает даты в различных форматах, например, «2 март 2020», «20.03.2020», «20/03/2020», «2020/03/20», «20-03-2020», «2020-03-20» и т.д.
Вот примеры расчета количества дней во временных промежутках:
=РАЗНДАТ(«2 март 2020»; «2020-03-20»; «D»)
=РАЗНДАТ(«02-03-2020»; «20/03/2020»; «D»)
Естественно, эти значения могут быть записаны и в ячейках, а формула на них будет ссылаться.
- Порядковые номера. Поскольку Microsoft Excel хранит каждую дату как порядковый номер, начинающийся с 1 января 1900 года, вы можете поместить числа, соответствующие датам, непосредственно в формулу. Хотя этот метод полностью поддерживается, все же он не является надежным, поскольку нумерация различается в разных компьютерных системах (Windows и MacOS).
В системе дат 1900 года следующая формула является еще одним способом вычисления месяцев по условиям из предыдущего примера (2 марта 2020 года и 10 марта 2020 года):
=РАЗНДАТ(43900; 43892; «D»)
- Результаты выполнения других функций. Например, следующая формула подсчитывает, срок между сегодня (18 марта 2020г.) и 9 мая 2020 года.
=РАЗНДАТ(СЕГОДНЯ(); «9-05-2020»; «D»)
В отличие от операции вычитания, функция РАЗНДАТ может только вычесть более старую дату из более новой, но не наоборот. Если точка начала позже точки окончания, расчет выдает ошибку #ЧИСЛО!, как в строке 4 на скриншоте ниже:
1. Разница в днях.
В нашем примере формула расчета в D3 выглядит следующим образом:
=РАЗНДАТ(A3; B3; «D»)
Обратите также внимание, что при простом вычитании дат, которые также содержат время, мы получаем в результате дробное число. Так произошло в С5 и С6. Что делать с такими дробями – поговорим чуть позже. А вот время здесь просто игнорируется. В этом вы можете убедиться в диапазоне D5:I6.
Аналогичный результат можно получить формулами:
=ЦЕЛОЕ(В2)-ЦЕЛОЕ(А2)
Время, то есть дробная часть, будет отброшено.
Кстати, если нужно подсчитать только рабочие дни, то следует использовать выражение
=ЧИСТРАБДНИ(В2;А2)
Более подробно о расчете рабочих дней читайте здесь.
2. Разница в полных месяцах.
Обращаемся к ячейке Е3:
=РАЗНДАТ(A3;B3;»m»)
Обратите внимание, выражение вернет количество полных месяцев. В нашем примере 13 месяцев и 7 дней «округлены» ровно до 13. И последний день интервала, как мы уже говорили, эта функция не учитывает. В частности,
=РАЗНДАТ(“01.03.2020”;”31.03.2020”;»m»)
возвращает результат 0, так как последний день не включается в расчет. Вы это видите в ячейке E7. Это также будет важно при расчете стажа и отработанного времени. Учитывайте эту особенность и просто добавляйте 1 дополнительный день!
Формула может быть заменена альтернативным выражением:
= 12*(ГОД(B3)-ГОД(A3))- (МЕСЯЦ(A3)-МЕСЯЦ(B3))-(ДЕНЬ(B3)<ДЕНЬ(A3))
3. Разница в полных годах.
Формула в ячейке F3 вернет количество полных лет:
=РАЗНДАТ(A3;B3;»Y»)
Опять же, считается только полный год, остальное отбрасывается.
Ну и альтернативный способ расчета —
= ЕСЛИ(ДАТА(ГОД(B3); МЕСЯЦ(A3);ДЕНЬ(A3))<= B3; ГОД(B3)-ГОД(A3);ГОД(B3)-ГОД(A3)-1)
4. Разница в полных месяцах без учета лет.
Используем в I3 аргумент «YM».
=РАЗНДАТ(A3;B3;»YM»)
Второй параметр и конечная точка у нас – 10.04.2020 г. Поскольку годы мы здесь игнорируем, то год первого параметра также становится 2020. И мы теперь сравниваем 10.04.2020 и 2.03.2020г.
Результат – 1 полный месяц.
А вот если начало, предположим, будет 01.09.2015г.? Ведь ее нельзя модифицировать до 01.09.2020, поскольку тогда функция выдаст ошибку. И программа ее меняет на 01.09.2019. Результат здесь – 7 полных месяцев.
Я очень сомневаюсь, что кто-то будет проводить подобный расчет. Но он нам будет нужен, чтобы подсчитать количество дней, месяцев и лет между двумя точками. Об этом мы поговорим чуть ниже.
Ну и альтернативный расчет –
=ОСТАТ((12*(ГОД(B3)-ГОД(A3))- (МЕСЯЦ(A3)-МЕСЯЦ(B3))-(ДЕНЬ(B3)<ДЕНЬ(A3)))/12)
5. Разница в днях без учета месяцев и лет.
Здесь немного сложнее. Итак, в G3 пишем:
=РАЗНДАТ(A3;B3;»MD»)
Разберем, как получен результат в G3. Поскольку для нас не важны месяц и год, мы в начальной дате меняем их на текущие. То есть вместо 02.03.2019 рассматриваем 02.04.2020. Сравниваем с 10.04.2020 и получаем 8 дней. Есть ли в таком результате смысл? Вряд ли. Поэтому и не рекомендуется применение этого аргумента как отдельного расчета.
Быть может, поэтому РАЗНДАТ и нет в списке официальных функций Excel.
6. Разница в днях без учета лет.
То же самое, что и в предыдущем аргументе. Считаем количество суток между двумя точками без учета лет.
=РАЗНДАТ(A3;B3;»YD»)
Для начального момента — 02.03.2019 и конечного – 10.04.2020, разница в 39 дней выглядит явной ошибкой. Аналогично – между 01.09.2015 и 10.04.2020 совсем не 222 дня.
Следовательно, использование этого аргумента также не рекомендуем.
А зачем же всё это нужно? Ответ читайте в следующем разделе.
Как посчитать разницу в днях, месяцах и годах.
Чтобы подсчитать, сколько полных лет, месяцев и дней составляет разница «от» и «до» с использованием одной формулы, вы просто объединяете три функции в одно выражение:
=РАЗНДАТ(B2;B3;»Y»)&» лет, «&РАЗНДАТ(B2;B3;»YM»)&» месяцев, «&РАЗНДАТ(B2;B3;»MD»)&» дней»
Если вы не хотите отображать нулевые значения лет, месяцев и дней, то выражение можно изменить, добавив условие ЕСЛИ:
=ЕСЛИ(РАЗНДАТ(B2;B3;»Y»)>0;РАЗНДАТ(B2;B3;»Y»)&» лет «;»»)&ЕСЛИ(РАЗНДАТ(B2;B3;»YM»)>0;РАЗНДАТ(B2;B3;»YM»)&» месяцев «;»»)&ЕСЛИ(РАЗНДАТ(B2;B3;»MD»)>0;РАЗНДАТ(B2;B3;»MD»)&» дней»;»»)
Более подробно об условиях и функции ЕСЛИ читайте здесь.
А вот еще один более сложный, но зато более универсальный вариант расчета разницы в днях, месяцах и годах с учетом склонений и падежей:
=ЕСЛИ(РАЗНДАТ(B2;B3;»y»);РАЗНДАТ(B2;B3;»y»)&» «&ТЕКСТ(ОСТАТ(МАКС(ОСТАТ(РАЗНДАТ(B2;B3;»y»)-11;100);9);10);»[<1]год;[<4]года;лет»)&» «;)& ЕСЛИ(РАЗНДАТ(B2;B3;»ym»);РАЗНДАТ(B2;B3;»ym»)&» меся»&ТЕКСТ(ОСТАТ(РАЗНДАТ(B2;B3;»ym»)-1; 11);»[<1]ц;[<4]ца;цев»)&» «;)& ЕСЛИ(РАЗНДАТ(B2;B3;»md»)>0;РАЗНДАТ(B2;B3;»md»)&» д»&ТЕКСТ(ОСТАТ(МАКС(ОСТАТ(РАЗНДАТ(B2;B3;»md»)-11;100);9); 10);»[<1]ень;[<4]ня;ней»);)
Выглядит угрожающе, но зато работает.
Подсчет с помощью функции ДНИ
У пользователей Excel 2013 и 2016 есть еще один удивительно простой способ посчитать количество дней во временном интервале — функция ДНИ.
ДНИ (дата_окончания; дата_начала)
Обратите внимание, что по сравнению с РАЗНДАТ, функция ДНИ требует указания дат в обратном порядке.
Итак, наше выражение принимает вид:
=ДНИ(B3;A3)
Как и обычное вычитание, оно возвращает разницу в виде положительного или отрицательного числа, в зависимости от того, больше или меньше срок окончания, чем начало:
Думаю, в большинстве случаев можно использовать простое вычитание. Возможно, при этом только нужно будет изменить формат ячейки, убрав дробную часть.
Как рассчитать количество дней между сегодня и другой датой.
Для этого расчета вы можете использовать любую из формул, описанных выше, и применить функцию СЕГОДНЯ (TODAY в английском варианте) в качестве одного из аргументов.
Чтобы рассчитать количество прошедших дней с определенного момента, то есть между прошлым и сегодняшним днем:
=СЕГОДНЯ() – Дата_в_прошлом
Для подсчета количества дней, оставшихся до наступления какого-то события, то есть между будущим временем и сегодняшним днем:
=Дата_в_будущем — СЕГОДНЯ()
В качестве примера, давайте посчитаем разницу между текущим моментом времени и более ранним — в A4 (сегодня 18 марта 2020г.):
=СЕГОДНЯ()–A3
А теперь давайте выясним, сколько осталось от сегодняшнего дня (18.03.2020г.) до более позднего срока:
Ну а если не менять выражение по сравнению с предыдущим расчетом, то просто получите отрицательное количество дней.
Мастер даты и времени — простой способ создавать формулы разницы дат в Excel
Как показано в первой части этого руководства, функция РАЗНДАТ (DATEDIF) — довольно универсальная, подходящая для самых разных целей. Однако есть один существенный недостаток — она не документирована Microsoft, то есть вы не найдете РАЗНДАТ в списке функций и не увидите всплывающих подсказок для аргументов, когда начнете вводить формулу в ячейку. Чтобы иметь возможность использовать функцию РАЗНДАТ в своих таблицах, вы должны запомнить ее синтаксис и ввести все аргументы вручную, что может занять много времени и привести к ошибкам, особенно у начинающих.
Надстройка Ultimate Suite радикально меняет это положение, поскольку там имеется мастер даты и времени, который может мгновенно создать практически любую формулу разницы дат. Если вы не уверены, какую формулу использовать, позвольте мастеру даты и времени вычислить количество дней между двумя датами за вас Вот каким образом это можно сделать:
- Выберите ячейку, в которую вы хотите вставить формулу.
- Перейдите на вкладку Ablebits Tools и нажмите кнопку Мастер даты и времени (Date & Time Wizard).
- Появится диалоговое окно мастера даты и времени, где вы переходите на вкладку «Разница (Difference)» и вводите необходимые данные для расчёта:
- Щелкните поле Дата 1 и выберите ячейку, содержащую первую дату.
- Щелкните поле Дата 2 и укажите ячейку со второй датой.
- Выберите желаемую единицу или комбинацию единиц времени из раскрывающегося меню «Разница в (Difference in)» . При этом программа позволяет предварительно просмотреть результат в поле и формулу в ячейке.
Инструмент может рассчитать разницу между двумя датами в 15 форматах:
- Годы
- Месяцы
- Недели
- Дни
- Годы + месяцы
- Годы + недели
- Годы + дни
- Месяцы + недели
- Месяцы + дни
- Недели + дни
- Годы + месяцы + недели
- Годы + месяцы + дни
- Годы + недели + дни
- Месяцы + недели + дни
- Годы + месяцы + недели + дни
- Если вас устраивает то, что вы увидели, нажмите кнопку «Вставить формулу (Insert Formula)», в противном случае попробуйте другие единицы измерения.
После того, как формула вставлена в выбранную ячейку, вы можете скопировать ее вниз по столбцу, как обычно дважды щелкнув или перетащив маркер заполнения.
К сожалению, метки даты и времени вставляются по-английски. Однако, поскольку надстройка формирует для вас не текст, а формулу расчета (что вы и видите на скриншоте), то откорректировать формулу и пользоваться в дальнейшем ее русской версией не слишком сложно.
Да и вряд ли вы самостоятельно напишете такую сложную конструкцию 😊
Для наиболее удобного представления результатов доступно еще несколько дополнительных опций:
- Исключить годы и / или месяцы из расчетов. (Годы и / или месяцы просто будут отброшены).
- Показывать или не показывать текстовые метки времени, такие как дни, месяцы, недели и годы .
- Показывать или не показывать нулевые единицы (0 месяцев, например) .
- Возвращает результаты как отрицательные значения, если Дата 1 (дата начала) больше, чем Дата 2 (дата окончания). Думаю, вы сталкивались с ситуацией, когда попытка вычесть из более ранней даты более позднюю приводила к ошибке. Здесь вы просто получите отрицательную разность.
Более подробная информация доступна здесь.
Преимущества использования мастера формул даты и времени
Помимо скорости и простоты, Мастер даты и времени предоставляет еще несколько преимуществ:
- В отличие от обычной формулы РАЗНДАТ, для формулы, созданной мастером, не важно, какая из двух дат меньше, а какая больше. Разница всегда рассчитывается идеально, даже если Дата 1 (дата начала) больше, чем Дата 2 (дата окончания).
- Мастер поддерживает все возможные единицы измерения (дни, недели, месяцы и годы) и позволяет вам выбирать подходящий вариант из 11 различных комбинаций этих единиц.
- Формулы, которые мастер создает для вас, являются обычными формулами Excel, поэтому вы можете редактировать, копировать или перемещать их как обычно. Вы также можете поделиться своими таблицами с другими людьми, и все формулы останутся на своих местах, даже если у кого-то нет Ultimate Suite в их Excel.
Если вам интересно протестировать этот калькулятор дат, а также открыть для себя еще 60 надстроек для упрощения работы и экономии времени в Excel, то можете загрузить пробную версию Ultimate Suite. Если вам понравились инструменты и вы решили купить лицензию, не пропустите это специальное предложение для читателей нашего сайта.
Думаю, теперь операции с датами стали для вас намного проще и понятнее. Если вы не нашли ответ на интересующий вас вопрос, ознакомьтесь с дополнительными материалами, ссылки на которые вы видите чуть ниже. Или напишите нам в комментариях – постараемся ответить.
Также рекомендуем статьи о работе с датами:
На чтение 5 мин Просмотров 2.1к. Опубликовано 27.02.2022
Итак, мы имеем несколько серьезных функций, для того чтобы рассчитать кол-во дней между двумя датами, причем с разными параметрами (такими как выходные дни, праздники и так далее).
В этой статье я продемонстрирую вам разные ситуации, где нужно посчитать кол-во дней между датами. Все они будут с разными «уклонами», в одной ситуации нужно посчитать без выходных, в другой количество понедельников и так далее.
Содержание
- Стандартный расчет количества дней
- С помощью функции ДНИ
- С помощью функции РАЗНДАТ
- Расчет кол-ва рабочих дней
- Расчет кол-ва неполных рабочих дней между двумя датами
- Количество понедельников между двумя датами
Стандартный расчет количества дней
Итак, в 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» — нерабочий день.
Формула рассчитывает количество рабочих дней, с учетом того что единственный рабочий день — это понедельник.
Аналогичным образом можно рассчитать количество любых, интересующих вас дней, между двумя датами.
Довольно часто при работе датами в таблице Эксель возникает необходимость определения временного промежутка между ними, который измеряется в днях. В Excel существуют различные способы для выполнения данной задачи. Давайте рассмотрим их.
Содержание
- Расчет разности дат
- Метод 1: использование формулы вычитания
- Метод 2: функция РАЗНДАТ
- Метод 3: функция ЧИСТРАБДНИ для определения количества рабочих дней
- Заключение
Расчет разности дат
Для корректной работы с датами сперва нужно задать ячейкам соответствующий формат. В противном случае возможны проблемы с корректным отображением дат, что сделает невозможным их дальнейшую обработку.
На самом деле Эксель способен самостоятельно определять формат ячейки после ввода в нее информации. Но этот механизм не всегда срабатывает как надо, поэтому стоит заранее самостоятельно настроить формат ячеек или проверить, правильно ли его определила программа.
- Для начала выделяем целевой диапазон ячеек, воспользовавшись зажатой левой кнопкой мыши.
- Щелкаем по выделенной области правой кнопкой мыши и в открывшемся контекстном меню выбираем команду “Формат ячеек“. Аналогичного результата можно добиться, используя комбинацию клавиш Ctrl+1.
- Перед нами окно настроек формата ячеек:
- по умолчанию мы должны оказаться во вкладке “Число” (если это не так, переключаемся в нее);
- в списке “Числовые форматы” находим позицию “Дата” и кликаем на нее;
- в поле “Тип” выбираем нужный образец представления данных, в соответствии с которым они будут отображаться на листе;
- нажимаем OK.
- Теперь все значения, вводимые в ячейки выделенной области будут восприниматься программой как данные в формате “Дата“.
Метод 1: использование формулы вычитания
Начнем, пожалуй, с самого простого способа – вычитания двух дат, представленного в виде обычной формулы.
- Вносим две даты, между которыми будем определять разницу в днях, в две разные ячейки отформатированного ранее диапазона.
- Теперь выделим ячейку, в которой планируем отобразить результат нашего вычисления.
ВАЖНО: Количество дней обозначается простым целым числом, следовательно, ячейка для его вывода должна иметь отличный от “Дата” формат, а именно – “Общий“. В противном случае полученный результат будет отображаться в формате даты, что не позволит оценить корректность проведенных вычислений. Для определения текущего формата ячейки достаточно взглянуть на соответствующее поле, расположенное в разделе инструментов “Число” на ленте вкладки “Главная“. - В нашем случае установлено значение “Дата“. Для его изменения вновь вызываем окно формата ячеек и по описанному выше алгоритму устанавливаем числовой формат “Общий“. Для сохранения изменений жмем ОК.
- Теперь можно переходить непосредственно к вычислениям:
- в итоговую ячейку вводим знак “=“;
- кликаем по ячейке с конечной датой (более поздней);
- вводим с клавиатуры символ “–” (знак минус);
- кликаем по ячейке с начальной датой.
- Для получения результата жмем клавишу Enter. В итоге получаем целое число – количество дней между двумя датами.
Метод 2: функция РАЗНДАТ
Следующий способ – это определение разницы между двумя датами при помощи функции РАЗНДАТ.
Функция имеет следующий синтаксис: =РАЗНДАТ(начальная_дата;конечная_дата;единица).
Если с двумя первыми аргументами все понятно – их суть соответствует названию, то на третьем (“единица“) стоит остановиться подробнее, так как именно он позволяет варьировать результат использования функции, выбирая единицу расчета разницы между датами:
- “d” — количество дней между датами;
- “m” — количество полных месяцев между датами;
- “y” — количество полных лет между датами;
- “YM” — разница между датами в месяцах;
- “MD” — разница между датами в днях, без учета месяцев и лет;
- “YD” — разница между датами в днях, без учета лет.
В нашем случае покажем пример использование аргумента “YD”, так как целью расчета является определение количества дней между датами в пределах года.
Основное отличие от простого вычитания одной даты из другой – в порядке следования аргументов функции: в качестве первого аргумента выбирается начальная (более ранняя дата), а в качестве второго – конечная (более поздняя). Опишем ниже алгоритм вычислений.
- Выбираем целевую ячейку, проверяем ее формат по способу, описанному выше.
- Описываемая функция отсутствует в Мастере функций, поэтому вводим ее в ячейку вручную, строго придерживаясь синтаксиса.
- Жмем Enter и проверяем полученный результат. Как мы видим, он аналогичен тому, который мы получили, используя простую формулу вычитания. Значит все сделано верно.
Метод 3: функция ЧИСТРАБДНИ для определения количества рабочих дней
Третий описываемый метод позволяет вычислить количество дней с дополнительным условием – исключением из него нерабочих (выходных и праздничных) дней.
В данном методе используется функция ЧИСТРАБДНИ со следующим синтаксисом: =ЧИСТРАБДНИ(нач_дата;кон_дата;[праздники]).
Первые два аргумента аналогичны функции РАЗНДАТ. Последний аргумент является опциональным, то есть функция будет работать и без его указания. Однако именно он позволяет учесть в критериях вычисления нерабочие праздничные дни, так как по умолчанию из общего количества уберутся только субботы и воскресенья.
Приступаем к вычислениям:
- Так как описываемая функция присутствует в списке Мастера функций, воспользуемся им для большей наглядности: встаем на ячейку, куда будем выводить результат и щелкаем по кнопке “Вставить функцию” (fx), расположенной слева от строки формул.
- В открывшемся окне Мастера функций:
- выбираем категорию “Полный алфавитный перечень”;
- находим и кликаем в списке операторов по строке “ЧИСТРАБДНИ”;
- нажимаем ОК.
- Перед нами появится окно аргументов функции. Здесь можно ввести адреса ячеек вручную или, находясь в поле для заполнения значений аргумента, кликнуть по нужной ячейке на листе. Выбрав начальную и конечную дату, а также указав праздничный день (адрес ячейки), нажимаем ОК.
- Предположим, в этот раз мы заранее не задали формат итоговой ячейки как “Общий”. Тогда мы получим результат, отображающийся в виде даты.
- Следовательно, необходимо снова проверить формат по алгоритму, описанному выше и изменить его на “Общий”.
Заключение
С помощью описанных выше методов можно достаточно легко посчитать количество дней между двумя датами, как с наличием дополнительных критериев, так и без них. Формула вычитания и функция РАЗНДАТ прекрасно подойдут для простого подсчета дней, а функция ЧИСТРАБДНИ поможет с расчетом количества именно рабочих дней между датами. Окончательный выбор зависит от поставленной перед пользователем задачи.
Нужно посчитать в excel, какое количество дней прошло между двумя датами? В этой статье разберемся во всех нюансах расчета.
- Количество дней между двумя датами
- Функция РАЗНДАТ в Excel — как посчитать количество лет, месяцев и дней между двумя датами
- Сколько дней прошло с указанной даты до сегодняшнего дня
Количество дней между двумя датами
Если просто нужно посчитать в excel количество дней между двумя датами, то можно сделать это простым вычитанием.
Кол-во дней = Более новая дата — Более старая дата
Рассмотрим на примере.
Еще один способ, как в excel посчитать количество дней между двумя датами — при помощи функции РАЗНДАТ .
Это хитрая функция, которой нет в мастере формул, и excel не выдает подсказки при ее вводе. Но она прекрасно работает, если ввести ее вручную с клавиатуры.
Поэтому ее синтаксис придется просто запомнить или сохранить.
= РАЗНДАТ(дата_начальная; дата_конечная; аргумент)
дата_начальная и дата_конечная — это две даты, между которыми нужно посчитать разницу. Здесь важно, чтобы конечная дата была больше (более новой), чем начальная — иначе будет ошибка.
аргумент — указывает, в каких единицах времени представить результат.
Внимание: аргумент указывается в кавычках.
Он может иметь следующие значения:
Посмотрим пример работы функции РАЗНДАТ с теми же вводными.
Как видите, результат в днях такой же, как при простом вычитании. Поэтому вся мощь функции РАЗНДАТ — в подсчете не дней, а других временных интервалов.
Посчитаем количество месяцев между этими же датами.
Как видите, результат вычисления функции РАЗНДАТ с аргументом М — 12 месяцев. Хотя если разделить количество дней от прошлых вычислений на 30 (среднее количество дней в месяце), то получится 13 месяцев. Все дело в том, что функция РАЗНДАТ учитывает количество полных месяцев — а здесь до полного 13-го месяца не хватает одного дня. Поэтому результат 12 месяцев. Учитывайте эту особенность данной функции.
Посмотрим еще пример, как работает функция РАЗНДАТ с аргументом YD (разница в днях, игнорируя значения года). Получено значение 30 — именно столько дней прошло между датой 5 октября и 4 ноября без учета разницы в один год.
Особенность функции РАЗНДАТ — она выводит только целые значения. Например, РАЗНДАТ с аргументом “Y” покажет количество целых лет. Т.е. если между датами прошло меньше 1 года, то результат будет 0.
Если нужно посчитать количество лет с десятыми долями, то можно количество дней разделить на 365 или использовать функцию ДОЛЯГОДА.
Сколько дней прошло с указанной даты до сегодняшнего дня
Для начала вспомним (или узнаем), что сегодняшнюю дату в Excel можно вывести функцией СЕГОДНЯ.
Функция СЕГОДНЯ не принимает на вход никаких аргументов, и ее синтаксис простой:
=СЕГОДНЯ()
Функцию СЕГОДНЯ часто используют, чтобы посчитать, сколько дней прошло с указанной даты до сегодняшнего дня.
Использовать можно те же способы, которые мы рассмотрели выше, только вместо более поздней даты подставлять функцию СЕГОДНЯ.
Пример с использованием простого вычитания дат.
Пример с использованием функции РАЗНДАТ. Обратите внимание, что функция СЕГОДНЯ всегда указывается как второй аргумент.
В этой статье мы узнали, как в excel рассчитать количество дней между двумя датами.
Мы ВКонтакте
Вам может быть интересно:
17 авг. 2022 г.
читать 1 мин
Мы можем использовать функцию DATEDIF() для вычисления разницы между двумя датами в Excel.
Эта функция использует следующий синтаксис:
=DATEDIF(Начальная_Дата, Конечная_Дата, Метрика)
куда:
- Start_Date: дата начала
- End_Date: Дата окончания
- Метрика: метрика для расчета. Варианты включают:
- «д»: дни
- «м»: Месяцы
- «г»: годы
Важно отметить, что эта функция не появится автоматически в Excel, пока вы полностью не введете =РАЗНДАТ( в одну из ячеек.
В следующих примерах показано, как использовать эту функцию для вычисления разницы между двумя датами в Excel.
Пример 1: разница в днях
На следующем изображении показано, как рассчитать разницу (в днях) между двумя датами:
Это говорит нам о том, что между 01.01.2018 и 01.02.2021 1127 полных дней.
Пример 2: разница в месяцах
На следующем изображении показано, как рассчитать разницу (в месяцах) между двумя датами:
Пример 3: Разница в годах
На следующем изображении показано, как рассчитать разницу (в годах) между двумя датами:
Пример 4: Разница в годах и месяцах
На следующем рисунке показано, как рассчитать разницу (в годах и месяцах) между двумя датами:
Вы можете найти больше руководств по Excel на этой странице .
Написано
Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.
Функция РАЗНДАТ позволяет выяснить, сколько полных дней, месяцев или лет прошло между двумя указанными датами. Таким образом можно легко посчитать в Excel: возраст от даты рождения, трудовой стаж, сроки беременности и др. Примеры расчетов точных сроков, возрастов и продолжительности до окончания периодов времени с помощью функции РАЗНДАТ. Как правильно считать разницу между двумя датами при 365 и 366 днях в году?
Примеры использования функции РАЗНДАТ
Пример 1. Требуется вычислить, зная дату рождения работника, сколько полных лет, месяцев и дней ему исполнилось на момент сегодняшней даты.
Используя в качестве аргументов саму дату рождения и функцию СЕГОДНЯ(), а также значения «Y», «M» и «D» для единицы, получим следующий набор формул:
=РАЗНДАТ(B2;СЕГОДНЯ();»Y»)
=РАЗНДАТ(B2;СЕГОДНЯ();»M»)
=РАЗНДАТ(B2;СЕГОДНЯ();»D»)
Таким образом мы получили точный возраст в годах, месяцах и днях от даты рождения.
Как точно посчитать сколько прошло времени: лет, месяцев и дней?
Пример 2. В документе записаны даты рождения сотрудников. Требуется выяснить, сколько лет, месяцев и дней исполнилось каждому из них на момент сегодняшнего дня.
Используя уже знакомую формулу =РАЗНДАТ(B2;СЕГОДНЯ();»Y») для ячейки С2 получим количество полных лет возраста каждого из работников. Протянем эту формулу на весь столбец ниже.
Модифицировав формулу, использованную выше, заменяем значение единицы с «Y» на «YM». Итоговый вид формулы: =РАЗНДАТ(B2;СЕГОДНЯ();»YM»). Таким образом, мы получим на выходе количество полных месяцев возраста, не учитывая прошедшие полные года. Протянем формулу на весь столбец ниже.
В конце нам понадобятся и дни, не вошедшие в месяц. Снова заменяем значение единицы с «YM» на «YD» и получим формулу следующего вида, в которой на выходе будет число дней: =РАЗНДАТ(B2;СЕГОДНЯ();»YD»).
Такое решение можно элегантно улучшить, если использовать функцию СПЕЦПИТЬ() и вызвать окошко аргументов, приведя функцию в следующий вид: =СЦЕПИТЬ(C2;» лет «;D2;» месяцев «;E2;» дня(-ей)»)
Как посчитать сроки окончания действия договора в Excel
Пример 3. В документе записаны даты заключения договоров сотрудников компании. По умолчанию договор заключается на 1 год. Требуется выяснить, сколько дней осталось до момента окончания трудового договора у каждого из сотрудников, чтобы подготовить новые экземпляры для продления договоров.
С помощью функции РАЗНДАТ определим, сколько дней прошло с момента заключения трудового договора. В новом столбце для ячейки С2 используем формулу: =РАЗНДАТ(B2;СЕГОДНЯ();»d») и протянем ее на весь столбец ниже.
Подсчитаем количество оставшихся дней до окончания трудового договора каждого из сотрудников. Для этого в новом столбце вычитаем от количества дней в году значения из столбца С, используя формулу:
Сначала мы определяем количество дней во году по дате (365 или 366) по формуле ЕСЛИ(ОСТАТ(ГОД(B2);4);365;366), а после вычитаем, чтобы узнать сколько осталось -C2.
Для удобства можно добавить еще одну колонку, в которой с помощью условий указать замечание для продления договора, если осталось меньше 10 дней до его окончания. Для ячейки E2 используем формулу:
В данной формуле используется функция ЕСЛИ с несколькими условиями. Если до конца срока больше 10-ти суток тогда формула возвращает значение «Действует», а если меньше 10-то тогда одно из условий:
- Если меньше 10-ти суток, но больше чем 0 – значение «Заканчивается».
- Если меньше чем 0, тогда «Просрочен».
Особенности использования функции РАЗНДАТ
Синтаксис функции:
=РАЗНДАТ(нач_дата;кон_дата;единица)
Описание аргументов:
- — нач_дата: дата, от которой будет вестись расчет;
- — кон_дата: дата, до которой будет вестись расчет;
- — единица: аргумент, указывающий на величину, в которой будет производиться расчет.
Примечание: аргументы нач_дата и кон_дата могут принимать как числовое значение, так и быть результатом какого-либо вычисления, производимого вне ячеек (например, функции ДАТА(), функции СЕГОДНЯ()).
Примечание: аргумент единица может принимать одно из шести значений:
- — «Y»: в результате подсчетов будет выведено количество полных лет между начальными аргументами;
- — “M”: в результате подсчетов будет выведено количество полных месяцев между начальными аргументами;
- — «D»: в результате подсчетов будет выведено количество полных дней между начальными аргументами;
- — «MD»: в результате подсчетов будет выведено количество дней между датами, не учитывая месяца, прошедшие между датами. Например, при вычислении разницы между 1 сентября 2018 года и 21 ноября 2018 года (что составляет 2 месяца и 20 дней) со значением “MD” будет возвращено значение 20, т.к. прошедшие 2 полных месяца не будут учтены;
- — «YM»: в результате подсчетов будет выведено количество месяцев между датами, не учитывая года, прошедшие между датами. Например, при вычислении разницы между 1 сентября 2010 года и 1 ноября 2018 года (что составляет 8 лет и 2 месяца) со значением “YM” будет возвращено значение 2, т.к. прошедшие 8 полных лет не будут учтены;
- — «YD «: в результате подсчетов будет выведено количество суток между датами, не учитывая года, прошедшие между датами. Например, при вычислении разницы между 1 сентября 2010 года и 2 сентября 2018 года (что составляет 8 лет и 1 день) со значением “YD” будет возвращено значение 1, т.к. прошедшие 8 полных лет не будут учтены.