Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Excel для Mac 2011 Excel Starter 2010 Еще…Меньше
В этой статье описаны синтаксис формулы и использование функции РАБДЕНЬ в Microsoft Excel.
Описание
Возвращает число, которое представляет дату, отстоящую на заданное количество рабочих дней вперед или назад от начальной даты. Рабочими днями не считаются выходные дни и дни, определенные как праздничные. Функция РАБДЕНЬ используется для исключения выходных дней или праздников при вычислении дат платежей, ожидаемых дат доставки или количества фактически отработанных дней.
Совет: Чтобы вычислить число, которое представляет дату, отстоящую на заданное количество рабочих дней вперед или назад, с использованием параметров, определяющих количество выходных в неделе и то, какие это дни, используйте функцию РАБДЕНЬ.МЕЖД.
Синтаксис
РАБДЕНЬ(нач_дата;количество_дней;[праздники])
Аргументы функции РАБДЕНЬ описаны ниже.
-
нач_дата — обязательный аргумент. Начальная дата.
-
Количество_дней Обязательный. Количество дней до или после начальной даты, не являющихся выходными или праздниками. Положительное значение аргумента «количество_дней» обозначает дату в будущем, отрицательное — дату в прошлом.
-
Праздники Необязательный. Список из одной или нескольких дат, например государственных праздников, которые требуется исключить из рабочего календаря. Список может представлять собой диапазон ячеек, содержащих даты, или константу массива, содержащую числа, которые представляют даты.
Важно: Даты должны быть введены с использованием функции ДАТА или как результат вычисления других формул и функций. Например, для указания даты 23 мая 2008 г. воспользуйтесь выражением ДАТА(2008,5,23). Если ввести даты как текст, это может привести к возникновению проблем.
Замечания
-
В приложении Microsoft Excel даты хранятся в виде последовательных чисел, что позволяет использовать их в вычислениях. По умолчанию дате 1 января 1900 года соответствует номер 1, а 1 января 2008 года — 39448, так как интервал между этими датами составляет 39 448 дней.
-
Если какой-либо из аргументов не является допустимой датой, то workDAY возвращает #VALUE! значение ошибки #ЗНАЧ!.
-
Если start_date плюс дн. возвращает недействительные даты, то workDAY возвращает #NUM! значение ошибки #ЗНАЧ!.
-
Если значение аргумента «количество_дней» не является целым числом, оно усекается.
Пример
Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу ВВОД. При необходимости измените ширину столбцов, чтобы видеть все данные.
Данные |
||
01.10.2008 |
Начальная дата |
|
151 |
Осталось дней |
|
26.11.2008 |
Праздник |
|
04.12.2008 |
Праздник |
|
21.01.2009 |
Праздник |
|
Формула |
Описание (результат) |
Результат |
=РАБДЕНЬ(A2;A3) |
Отсчитывает 151 рабочий день с начальной даты (30.04.09) |
30.04.2009 |
=РАБДЕНЬ(A2;A3;A4:A6) |
Отсчитывает 151 рабочий день с начальной даты, исключая праздники (05.05.09) |
05.05.2009 |
Нужна дополнительная помощь?
Простая, но весьма частая задача у многих пользователей Microsoft Excel.
Предположим, что нам необходимо рассчитать срок доставки товара, зная дату отправки и длительность. Поскольку Excel на самом деле хранит даты как числа (количество дней с 1 января 1900 года), то простое сложение легко даст нам предполагаемую конечную дату доставки:
Однако, как видно из предыдущей картинки, нет никакой гарантии, что полученный срок не попадет на выходные, когда доставка не производится. Тогда нужно взять ближайший рабочий день, т.е. следующий понедельник, но какой формулой это лучше сделать?
Первое, что обычно приходит в голову, это конструкция с вложенными проверками дней недели с помощью функций ЕСЛИ (IF) и ДЕНЬНЕД (WEEKDAY). Что-то типа:
Т.е. если попали на субботу (ДЕНЬНЕД выдал 6 для даты доставки), то прибавляем еще 2 дня, чтобы сдвинуть на следующий понедельник. А если попали на воскресенье, то добавляем еще день. Не самая сложная формула.
На самом деле можно управиться существенно короче и изящнее
С 2007 года в Excel появилась функция РАБДЕНЬ (WORKDAY), которая умеет сдвигать исходную дату на заданное количество рабочих дней, причем сдвиг может быть как положительным (в будущее), так и отрицательным (в прошлое). Фишка в том, что если взять предыдущий день от предполагаемой даты доставки и с помощью этой функции добавить к нему один рабочий день, то мы получим либо ту же самую дату (если были будни), либо ближайший понедельник (если доставка выпала на субботу или воскресенье). Что и требуется:
Приятным бонусом идет возможность указать список праздничных выходных дней, которые функция РАБДЕНЬ тоже будет воспринимать как нерабочие помимо суббот и воскресений. Диапазон с праздниками можно задать третьим аргументом:
Легко сообразить, что подобный подход можно использовать и для поиска ближайшего предыдущего, а не следующего рабочего дня.
Ссылки по теме
- Как Excel на самом деле хранит и обрабатывает даты и время
- Как вычислить возраст или стаж в Microsoft Excel
- Как определить сколько заданных дней недели попадает в интервал дат
Функция РАБДЕНЬ предназначена для определения даты начала или окончания какого-либо мероприятия относительно заданной начальной или конечной даты с учетом числа выходных и праздничных дней, и возвращает соответствующее значение в виде данных формата Дата.
Функция РАБДЕНЬ.МЕЖД предназначена для определения даты, равной сумме текущей даты и длительности мероприятия, и возвращает соответствующее числовое значение в коде времени Excel.
Примеры использования функций РАБДЕНЬ и РАБДЕНЬ.МЕЖД в Excel
Пример 1. Согласно расчетам, для выполнения проекта сотрудником фирмы потребуется 236 часов его беспрерывной работы. Дата начала проекта – 18.08.2018. Определить дату окончания работы над проектом. В ближайшие 30 дней праздников нет, выходные – суббота и воскресенье.
Вид исходной таблицы данных:
Для решения используем формулу:
Описание аргументов:
- B5 – дата начал события (работы над проектом);
- B6/B8 – число рабочих дней, требуемых для реализации проекта, при условии, что рабочий день длится 8 ч.
Результат вычислений:
Автоматически определилось число для сдачи реализованного проекта по ключ.
Как посчитать количество рабочих дней между датами
Чтобы посчитать количество рабочих или выходных дней между двумя датами в Excel следует использовать функцию ЧИСТРАБДНИ:
Как видите всего в невисокосном 2019-му 262 рабочих дней в году и 103 дня выходных (262+103=365).
Пример 2. Курс предмета в учебном заведении рассчитан на 46 занятий, которые проводятся в понедельник, среду и пятницу. Начало изучения предмета – 3.09.2018. Ближайшие праздники: 17.09.2018, 28.09.2018, 7.10.2018. Определить дату последнего занятия.
Вид исходной таблицы данных:
Формула для расчета:
Результат расчетов:
Последнее занятие будет 24 декабря 2018 года.
Формула оптимального расчета количества рабочих дней между датами
Пример 3. Для выполнения работы в срок было предложено два варианта: увеличить часы в рабочих днях до 10 ч в день или ввести шестидневную рабочую неделю. Расчетная длительность выполнения работы – 127 ч. Выбрать оптимальный вариант, если дата начала проекта – 20.08.2018.
Вид таблицы данных:
Для решения используем следующую формулу:
Функция ЕСЛИ выполняет проверку значений, возвращаемых функциями РАБДЕНЬ.МЕЖДУ и возвращает соответствующий результат. Чем больше дата, тем больше времени потребуется на реализацию проекта.
Результат расчетов:
То есть, чтобы быстрее выполнить работу, лучше увеличить длительность рабочего дня до 10 часов.
Особенности использования функций РАБДЕНЬ и РАБДЕНЬ.МЕЖД в Excel
Функция РАБДЕНЬ имеет следующий синтаксис:
=РАБДЕНЬ(нач_дата;количество_дней;[праздники])
Описание аргументов:
- нач_дата – обязательный аргумент, характеризующий значения формата Дата, которое является точкой отсчета (началом какого-либо события).
- количество_дней – обязательный аргумент, принимающий данные числового типа, которые характеризуют число рабочих дней, прошедших после начала какого-либо события или предшествующих ему. Считается, что данное количество не содержит дни, которые являются праздниками или выходными днями. Для обратного отсчета относительно даты, указанной в качестве аргумента нач_дата, данный аргумент следует оказать в виде отрицательного числа.
- [праздники] – необязательный аргумент, принимающий данные формата Дата, указывающие одну или несколько дат, соответствующих праздничным дням. В качестве данного аргумента может быть передан массив ячеек.
Функция РАБДЕНЬ.МЕЖД имеет следующий синтаксис:
=РАБДЕНЬ.МЕЖД(нач_дата;количество_дней;[выходной];[праздники])
Описание аргументов:
- нач_дата – обязательный аргумент, характеризующий дату начала какого-либо события в виде данных формата Дата;
- количество_дней – обязательный аргумент в виде данных числового типа, характеризующих число дней, которые предшествуют началу какого-либо события (отрицательное число) либо обозначают какую-либо будущую дату (положительное число);
- [праздники] – необязательный аргумент, принимающий одно или несколько значений формата Дата, указывающих даты праздничных дней;
- [выходной] – необязательный аргумент в виде строки из 7 последовательно записанных значений из диапазона от 0 до 1, характеризующей количество выходных дней и их позицию по дням недели, или числового значения из диапазона от 1 до 17. Примеры некоторых вариантов записи данного аргумента:
- 1 (или явно не указан) – выходными днями являются суббота и воскресенье.
- 2 – воскресенье и понедельник.
- 3 – понедельник и вторник (и т. д).
- 11 – только понедельник.
- 12 – только вторник (и т. д.).
- «0000011» — суббота и воскресенье».
- «1000001» — воскресенье и понедельник (и т. д.).
Примечания:
- При использовании обеих рассматриваемых функций необходимо иметь ввиду, что Excel поддерживает даты начиная от 1 января 1900 г. до 31 декабря 9999 г. Если аргумент нач_дата или дата любого праздничного дня представлены в виде даты, не принадлежащей к диапазону допустимых значений, обе функции вернут код ошибки #ЧИСЛО!.
- Если в результате сложения даты, представленной первым аргументом любой из рассматриваемых функций, а также количества дней, заданных вторым аргументом функции, с учетом определенного количества праздничных и выходных дней будет получено значение, находящееся вне диапазона допустимых значений дат, будет возвращен код ошибки #ЧИСЛО!.
- Если аргумент количество_дней представлен в виде дробного числа, дробная часть будет автоматически усечена.
- Функция РАБДЕНЬ.МЕЖД возвращает код ошибки #ЧИСЛО!, если в качестве аргумента [выходной] было передано число не из диапазона допустимых значений или строка, содержащая недопустимые символы, только единицы («1111111») или состоящая из менее чем семи символов.
- При вводе дат в качестве аргументов рассматриваемых функций рекомендуется использовать не текстовые представления дат (например, «10.02.2018»), а функции, возвращающие данные в формате даты (например, ДАТА(18;02;10)).
Скачать примеры расчета количества рабочих дней в Excel
Примечание: в отличие от функции РАБДЕНЬ, предусматривающей возможность указывать лишь даты праздничных дней, функция РАБДЕНЬ.МЕЖДУ позволяет определять число выходных в неделю и указывать, какими днями в неделе являются выходные (например, вместо привычных субботы и воскресенья можно указать вторник и среда).
Содержание
- Функция РАБДЕНЬ.
- Синтаксис
- Аргументы функции
- Что возвращает функция
- Как добавить или вычесть рабочие дни.
- Настраиваем свой график выходных дней.
- Количество дней между двумя датами в Excel
- Функция РАБДЕНЬ
- Складывать и вычитать календарные дни
- Как выглядит формат ячейки в Excel
- Сделать ячейку, в которой всегда стоит текущая дата
- В ячейке содержится Дата
- В ячейке с пользовательским форматом ДДД или ДДДД содержится Дата
- В ячейке содержится Число
- Пошаговая инструкция создания календаря в Excel
- Делаем заголовки
- Проставляем числа
- Добавляем условного форматирования
- Автоматически выделяем текущую дату в календаре
- Подготовка ячеек для работы с датами
- Подсчет количества дней с помощью простой формулы
- Второй способ: определение часов через временной промежуток
Функция РАБДЕНЬ.
Она возвращает момент времени, который наступит через определенное число рабочих дней (или наступил ранее). Она не учитывает дни отдыха и любые праздники, которые вы отдельно укажете.
Она подходит для расчета производственных графиков и сроков исполнения на основе стандартного производственного календаря, причем суббота и воскресенье – это для нее всегда дни отдыха.
РАБДЕНЬ – это встроенная функция в Excel 2007, 2010, 2013 и 2016. Ее можно ввести руками либо при помощи мастера функций. В более ранних версиях вам нужно специально включать пакет инструментов анализа.
Вам необходимо использовать следующие аргументы:
РАБДЕНЬ(дата_начала; дни; [праздничные_дни])
Первые два обязательны, а последний – по желанию:
- Дата_начала – с нее начинается подсчет дней.
- Дни – рабочие дни, которые нужно добавить или вычесть из начальной точки отсчета. Положительное число возвращает будущий момент времени, отрицательное — возвращает в прошлое.
- Праздничные_дни – необязательный список дат, которые следует считать нерабочими днями. Это может быть либо диапазон ячеек, содержащих даты, которые вы хотите исключить из расчетов, либо константа массива.
Синтаксис
=WORKDAY(start_date, days, [holidays]) – английская версия
=РАБДЕНЬ(нач_дата;количество_дней;[праздники]) – русская версия
Аргументы функции
- start_date (нач_дата) – дата, которую мы берем за точку отсчета;
- days (количество_дней) – общее количество рабочих дней, не включая выходные. Вы можете использовать как положительные, так и отрицательные числа в аргументе;
- [holidays] ([праздники])– (не обязательно) Это диапазон дат, который необходимо исключить из расчетов. Например, это могут быть какие-либо национальные праздники. Также, это может быть ссылка на диапазон ячеек, который содержит даты, или может быть массивом порядковых номеров, которые содержат даты.
Что возвращает функция
Дату, наступающую по прошествии заданного количества рабочих дней.
Как добавить или вычесть рабочие дни.
Чтобы рассчитать рабочие дни в Эксель, следуйте этим простым правилам:
- Чтобы добавить будние дни, введите положительное число в качестве аргумента дни в формуле РАБДЕНЬ.
- Чтобы вычесть будние дни, используйте там же отрицательное число.
Предположим, у вас в ячейке A10 указан начальный момент времени, а список праздников — в ячейках А2: А7. Вы хотите узнать, какое число будет через 90 рабочих дней в будущем и прошлом.
Вы можете сделать это, используя следующие формулы:
Чтобы добавить столько же к начальной точке, но учитывая праздничные дни в А2: А7:
=РАБДЕНЬ($A$10;90;$A$2:$A$7)
Чтобы вычесть 90 рабочих дней, исключая праздники:
=РАБДЕНЬ($A$10;-90;$A$2:$A$7)
Чтобы рассчитать сроки на основе текущей даты, используйте функцию СЕГОДНЯ() в качестве точки начала:
Чтобы добавить 90 рабочих дней:
=РАБДЕНЬ(СЕГОДНЯ();90;$A$2:$A$7)
Чтобы переместиться на такое же время назад по отношению к сегодня:
=РАБДЕНЬ(СЕГОДНЯ();-90)
Чтобы указать время начала непосредственно в формуле, используйте формулу ДАТА():
=РАБДЕНЬ(ДАТА(2020;1;7);90;$A$2:$A$7)
На следующем скриншоте показаны результаты всех этих и еще нескольких формул РАБДЕНЬ:
И, естественно, вы можете указать, сколько будних дней нужно добавить либо вычесть из точки начала в некоторой ячейке, а затем сослаться на эту ячейку в своей формуле. Например:
=РАБДЕНЬ($A$10;С1;$A$2:$A$7)
Где A10 – начальная датировка, а C1 – число рабочих дней до (отрицательные числа) или после (положительные числа) нее, без учета праздников.
Настраиваем свой график выходных дней.
В случае, если у вас применяется какой-то особенный график нерабочих дней (не суббота и воскресенье), то вам в помощь – формула РАБДЕНЬ.МЕЖД (WORKDAY.INTL в английской версии).
Она появилась в Excel 2010, в более старых версиях программы ее нет.
Дополнительно к своей предшественнице, она позволяет указывать, какие именно дни недели предназначены у вас для отдыха.
Синтаксис ее выглядит следующим образом:
РАБДЕНЬ.МЕЖД (дата_начала, дни, [выходные], [праздничные_дни])
Первые два аргумента являются обязательными и знакомыми нам:
Дата_начала – начальный момент времени.
Дни – будние дней до (отрицательное значение) или после (положительное значение) начальной точки. Если этот аргумент в результате каких-то расчетов передается в виде десятичного числа, то дробная часть отбрасывается.
Последние два аргумента являются необязательными:
Выходные – указывает, что именно следует считать днями отдыха. Это может быть либо число, либо текст, как показано ниже.
Число |
Выходные дни |
1 или отсутствует |
Суббота Воскресенье |
2 |
Воскресенье понедельник |
3 |
Понедельник вторник |
4 |
Вторник Среда |
5 |
Среда Четверг |
6 |
Четверг Пятница |
7 |
Пятница Суббота |
11 |
Только воскресенье |
12 |
Только понедельник |
13 |
Только вторник |
14 |
Только среда |
15 |
Только четверг |
16 |
Только в пятницу |
17 |
Только суббота |
Текст для указания выходного дня – серия цифр из семи нулей и единиц, представляющих семь дней недели, начиная с понедельника. 1 означает нерабочий день, и 0 — соответственно наоборот. Например:
- «0000010» — суббота – отдыхаем.
- «1000001» — понедельник и воскресенье – отдыхаем.
И вот как это может выглядеть на примере:
Я бы рекомендовал обратить внимание на конструкцию
=РАБДЕНЬ.МЕЖД($A$10;90;”1000001″;$A$2:$A$7)
Просто переставляя 0 и 1, можно прямо указать любой график труда и отдыха.
Все остальное, думаю, достаточно хорошо понятно из скриншота.
Замечание. Функции Excel РАБДЕНЬ и РАБДЕНЬ.МЕЖД возвращают порядковые номера (числа), представляющие даты. Чтобы они отображались как нужно, выделите нужные ячейки и нажмите Ctrl + 1, чтобы открыть диалоговое окно «Формат ячеек». На вкладке «Число» выберите «Дата» и определите нужный формат.
Количество дней между двумя датами в Excel
Это очень простой и понятный пример, в котором необходимо от последней даты отнять начальную дату, а полученное значение преобразовать в числовой формат. Как видите это можно произвести без помощи функций, но для получения рабочих дней нам это не подойдет.
Функция РАБДЕНЬ
- Функция РАБДЕНЬ (WORKDAY) почти противоположна функции ЧИСТРАБДНИ (NETWORKDAYS). Она возвращает дату до или после указанного количества будних дней (выходные исключены).
=WORKDAY(A1,B1)
=РАБДЕНЬ(A1;B1)
Примечание: Функция РАБДЕНЬ (WORKDAY) возвращает порядковый номер даты. Примените формат даты к ячейке для её отображения.
Календарь ниже поможет вам лучше понять функцию РАБДЕНЬ (WORKDAY).
Опять же, если вы подставите список праздников, функция РАБДЕНЬ (WORKDAY) вернёт дату до или после указанного количества рабочих дней (исключая выходные и праздничные дни).
Складывать и вычитать календарные дни
Excel позволяет добавлять к дате и вычитать из нее нужное количество дней. Никаких специальных формул для этого не нужно. Достаточно сложить ячейку, в которую ввели дату, и необходимое число суток.
Например, вам необходимо создать резерв по сомнительным долгам в налоговом учете. В том числе нужно просчитать, когда у покупателя возникнет задолженность со сроком 45 дней после дня реализации. Для этого в одну ячейку внесите дату отгрузки. К примеру, это ячейка D2. Тогда формула будет выглядеть так: =D2+45. Вычитаются дни по аналогичному принципу. Главное, чтобы ячейка с датой, к которой будете прибавлять число, имела правильный формат. Чтобы это проверить, нажмите правой кнопкой мыши на ячейку, выберите «Формат ячеек» и удостоверьтесь, что установлен формат «Дата».
Как выглядит формат ячейки в Excel
Таким же образом можно посчитать и количество дней между двумя датами. Просто вычтите из более поздней даты более раннюю. Результат Excel покажет в виде числа, поэтому ячейку с итогом переведите в общий формат: вместо «Дата» выберите «Общий».
К примеру, необходимо посчитать, сколько календарных дней пройдет с 05.11.2019 по 31.12.2019. Для этого введите эти даты в разные ячейки, а в отдельной ячейке поставьте знак «=». Затем вычтите из декабрьской даты ноябрьскую. Получится 56 дней. Помните, что в этом случае в подсчет войдет последний день, но не войдет первый. Если вам необходимо, чтобы итог включал оба дня, прибавьте к формуле единицу. Если же, наоборот, нужно посчитать количество дней без учета обеих дат, то единицу необходимо вычесть.
Сделать ячейку, в которой всегда стоит текущая дата
Введите в ячейку функцию СЕГОДНЯ, и в ней всегда будет актуальная дата. Чтобы функция работала исправно, учтите два условия. Во-первых, проверьте, верно ли стоит дата у вас на компьютере. Программа будет учитывать именно ее. Во-вторых, укажите в настройках Excel, чтобы формулы пересчитывались автоматически. Для этого в левом верхнем углу открытого листа Excel нажмите «Файл». В открывшемся меню выберите «Параметры», затем вкладку «Формулы» и проверьте, чтобы в колонке «Вычисления в книге» был выбран параметр «Автоматически».
В ячейке содержится Дата
В столбце А содержатся значения в формате дата, например в ячейке А6 – 13.08.2012.
Чтобы настроить правило Условного форматирования нужно:
- выделить диапазон А6:А14
- выбрать пункт меню
- выбрать тип правила Использовать формулу для определения форматируемых ячеек
- в поле Форматировать значения, для которых следующая формула является истинной ввести формулу =ДЕНЬНЕД(A6;2)>5
- задать формат, например красную заливку фона ячейки.
Даты в столбце А , у которых номер дня недели >5, будут выделены красным.
В ячейке с пользовательским форматом ДДД или ДДДД содержится Дата
Пусть в столбцах B и С также содержатся значения в формате дата, например в ячейке B6 введем формулу =A6 .
Для ячеек в диапазоне B6:B14 настроим пользовательский формат ДДД (для диапазона С6:С14 ДДДД).
Не смотря на то, что теперь в ячейках отображаются Пн и Понедельник, значения в ячейках продолжают оставаться в формате Дата. В этом можно убедиться скопировав значение ( CTRL+V ), например, из ячейки С6 , и вставив его Как значение ( ). В Строке формул будет отображаться значение 13.08.2012, а не слово понедельник . Поэтому настраивать правило Условного форматирования нужно так как показано в предыдущем разделе.
В ячейке содержится Число
Пусть в столбце D содержится номер дня недели, например в ячейке D6 введем формулу =ДЕНЬНЕД(A6;2) .
В этом случае правило Условного форматирования настраивается аналогично случаю когда в ячейке содержится Дата, только несколько упрощается формула =$D6>5
Сейчас мы создадим автоматический календарь который пригодится не только на текущий год, но и на все последующие года. И для этого нам не понадобятся макросы и программирование. Все что я покажу – сделано с использованием стандартных возможностей Excel.
Делаем заголовки
В ячейку A1 вбиваем следующую формулу: =”Календарь на ” & ГОД(СЕГОДНЯ()) & ” год”. Функция СЕГОДНЯ() возвращает текущую дату (мы часто будем ей пользоваться). Соответственно связка функций ГОД(СЕГОДНЯ()) возвратит нам текущий год.
Теперь создадим заголовки месяцев. В ячейку где стоит Январь запишем следующую формулу =ДАТА(ГОД(СЕГОДНЯ());1;1). Эта функция возвращает первое января текущего года (01.01.2015 в моем случае). Применим к этой ячейке такой формат, чтобы отображалось только название месяца. Для этого откроем формат ячеек сочетанием клавиш Ctrl + 1 и выберем соответствующий формат (см. рисунок).
Для создания заголовков последующих месяцев будем использовать еще одну очень полезную функцию =ДАТАМЕС(B3;1). Эта функция возвращает дату отстоящую от указанной на заданное число месяцев (в нашем случае на один). Таким образом, у нас получается следующая картина (дополнительно я добавил немного форматирования):
Проставляем числа
Для автоматического проставления чисел в календаре мы будем использовать всего одну формулу – формулу массива. На вид звучит страшновато, но если разобраться – все легко и просто. Выделяем ячейки B5:H10 и вводим следующую формулу (не спешим жать Enter):
=ДАТА(ГОД(B3);МЕСЯЦ(B3);1-1)-(ДЕНЬНЕД(ДАТА(ГОД(B3);МЕСЯЦ(B3);1-1))-1)+{0:1:2:3:4:5:6}*7+{1;2;3;4;5;6;7}
Вместо Enter нажимаем сочетание клавиш Ctrl+Shift+Enter, вставляя таким образом формула массива. В результате в выделенном диапазоне получаем числа указанного в ячейке B3 месяца.
Аналогичную операцию проводим с другими месяцами или просто копируем диапазон дат января в следующие месяца. Получаем следующую картину:
Добавляем условного форматирования
Сейчас в январе календарь содержит даты 29, 30, 31 декабря, а также часть дат февраля. Давайте немного скроем эти числа. Для этого будем использовать условное форматирование. Выделяем ячейки B5:H10 и создаем правило условного форматирования. Форматироваться будут ячейки, для которых следующая формула будет являться ИСТИНОЙ:
=И(МЕСЯЦ(B5)<>1+3*(ЧАСТНОЕ(СТРОКА(B5)-5;9))+ЧАСТНОЕ(СТОЛБЕЦ(B5);9))
В качестве формата я выбрал серый текст шрифта и получил следующую картину:
Автоматически выделяем текущую дату в календаре
Для этого создаем еще одно правило условного форматирования. Ячейка будет форматироваться только в том случае, если ее значение будет равно текущей дате (=СЕГОДНЯ()):
Подготовка ячеек для работы с датами
Перед тем как начинать работать с датами в Excel, нужно убедиться, что ячейки, в которых будут храниться даты, отформатированы в формат «Дата». Обычно Excel автоматически присваивает такой формат при вводе данных похожих на дату, но если сделать это вручную, то это позволит избежать возможных проблем.
Для того чтобы изменить формат ячеек их нужно выделить мышкой, кликнуть по ним правой кнопкой и в открывшемся меню выбрать пункт «Формат ячеек».
После этого откроется окно, в котором нужно выбрать формат «Дата», тип формата, который будет использоваться, и нажать на кнопку «ОК».
После настройки формата ячеек можно приступать к работе с датами. Для подсчета количества дней между двумя датами можно использовать различные способы. Ниже мы по отдельности рассмотрим каждый из этих вариантов.
Подсчет количества дней с помощью простой формулы
Самый простой вариант подсчета количества дней между двумя датами, это простая формула, которая будет вычитать одну дату из другой. Делается это очень просто. Для начала вам нужно ввести начальную и заключительную дату в отдельные ячейки и присвоить им формат «Дата», так как это описано выше.
После этого нужно выбрать ячейку, в которой будет находиться результат вычислений, и присвоить ей формат «Общий». Формат «Дата» для ячейки с результатом не подходит, поскольку в этой ячейке будет находиться количество дней (число), а не конкретная дата.
После присвоения формата «Общий», в эту ячейку нужно ввести формулу, которая будет отнимать более раннюю дату от более поздней. Подобная формула вводится очень просто. Выделяем ячейку, в которой должен находится результат, вводим символ «=», потом адрес ячейки с более поздней датой, потом символ «-» и адрес ячейки с более ранней датой.
После ввода формулы нужно нажать на клавишу Enter, и вы получите результат.
Как видим, в данном случае количество дней между двумя датами составляет 41.
Второй способ: определение часов через временной промежуток
Предположим, нам дано время 11 часов 45 минут, требуется узнать, сколько будет по истечении 2 часов 15 минут. Будем действовать по инструкции, чтобы получить результат.
- Отформатируем лист, если в нем проводились предыдущие расчеты, выбираем пустое поле и вписываем в двух соседних ячейках наши часы. Затем кликаем на пустую ячейку рядом. В ней будут выполняться все расчеты.
- Активируем пустую ячейку, переходим в строку формул, где устанавливаем знак «=» без кавычек. Нажимаем на ячейку с показателем часов на данный момент, ставим знак «+», добавляем соседнюю ячейку. Нажимаем кнопку «Enter». В итоге получится время, которое будет после определенного промежутка (в нашем случае по истечении 2 часов 15 минут).
В данном случае вы можете посчитать количество часов по истечении времени только в сутки. Если необходимо вычислить, какой показатель циферблата будет пределом, необходимо выбрать другой формат ячеек. Для этого активируйте окно форматирования и в списке аргументов укажите строчку со звездочкой, обязательно смените вкладку числового формата на «Время».
Источники
- https://mister-office.ru/formuly-excel/workday-networkdays-functions.html
- https://excelhack.ru/funkciya-workday-rabden-v-excel/
- http://topexcel.ru/kak-vychislit-rabochie-dni-v-excel/
- https://office-guru.ru/excel/funkcija-denned-v-excel-379.html
- https://zen.yandex.ru/media/id/593a7db8d7d0a6439bc26099/5e254f062b61697618a72b0c
- https://excel2.ru/articles/vydelyaem-dni-nedeli-cvetom-v-ms-excel
- https://micro-solution.ru/excel/various/calendar
- https://comp-security.net/%D0%BA%D0%BE%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE-%D0%B4%D0%BD%D0%B5%D0%B9-%D0%BC%D0%B5%D0%B6%D0%B4%D1%83-%D0%B4%D0%B2%D1%83%D0%BC%D1%8F-%D0%B4%D0%B0%D1%82%D0%B0%D0%BC%D0%B8-%D0%B2-excel/
- https://studwork.org/spravochnik/informatika/excel/kak-vychislit-vremya-v-excel
На чтение 10 мин. Просмотров 7.4k.
Содержание
- Добавить дни
- Добавить время
- Добавить месяцы до даты
- Добавить года
- Назначать баллы на основе позднего времени
Добавить дни
Добавить рабочие дни до даты
= РАБДЕНЬ (начало_даты; дни; праздники)
Если вам нужно добавить или вычесть рабочие дни (рабочие дни) для даты, чтобы можно было рассчитать дату в будущем или прошлом, которая пропускает выходные дни (и праздники), вы можете использовать функцию РАБДЕНЬ. Праздники не являются обязательными.
В этом примере формула в D5:
=РАБДЕНЬ(B5;C5;$B$8:$B$10)
Это добавляет 7 дней во вторник, 22 декабря и возвращает вторник, 5 января 2016 года. По умолчанию функция РАБДЕНЬ исключает выходные дни (суббота и воскресенье). В этом случае мы также предоставили список из трех праздничных дней, все из которых относятся к расчетному диапазону дат, что означает, что выходные и праздничные дни будут исключены.
Чтобы вычесть выходные из даты (вместо добавления рабочих дней), просто используйте отрицательное значение для дней. Например, чтобы получить дату 3 рабочих дня до даты в A1, вы можете использовать:
= РАБДЕНЬ (A1; -3)
Добавить рабочие дни без выходных
= РАБДЕНЬ.МЕЖД (дата начала; дни; «0000000»; праздничные дни)
Чтобы добавить или вычесть дни рабочих дней к дате, соблюдая праздники, но при условии 7-дневной рабочей недели, вы можете использовать функцию РАБДЕНЬ.МЕЖД. В этом примере формула в D6:
=РАБДЕНЬ.МЕЖД(B5;C5;»0000000″;B8:B10)
Эта формула добавляет 7 дней работы во вторник, 22 декабря. Три отпуска предоставляются с использованием названного диапазона «праздники» (B9: B11), а выходные устанавливаются с использованием специального синтаксиса «0000000», что означает, что все дни недели являются рабочими днями. Результат: Вт, 31 декабря 2015 года.
РАБДЕНЬ.МЕЖД может вычислять дату в будущем или прошлом, что касается праздников и выходных. Чтобы указать, какие дни считаются выходными, вы можете использовать специальный код (полный список кодов здесь) или использовать «маску» для обозначения выходных дней с единицами и нулями. Метод маски является более гибким, поскольку он позволяет назначать любой день недели в выходные (т. е. Нерабочий день). Например:
= РАБДЕНЬ.МЕЖД (A1;3; «0000000») // без выходных
= РАБДЕНЬ.МЕЖД (A1;3; «1000000») // выходной = Пн
= РАБДЕНЬ.МЕЖД (A1;3; «1100000») // выходные= понедельник + вторник
= РАБДЕНЬ.МЕЖД (A1;3; «1110000») // выходные = Пн + Вт + Ср
Аргумент выходных дней предоставляется в виде 7 символов, представляющих понедельник-воскресенье. Используйте один (1), чтобы указать выходные, и ноль (0), чтобы указать рабочий день.
Поскольку мы хотим, чтобы все дни недели считались рабочими днями, мы используем «0000000».
Добавить дни и исключить определенные дни недели
= РАБДЕНЬ.МЕЖД (дата; дни; «образец»)
Чтобы добавить дни в дату, исключая определенные дни (исключая вторники и четверги, только среду и т. д.), вы можете использовать функцию РАБДЕНЬ.МЕЖД со специальным кодом шаблона.
=РАБДЕНЬ.МЕЖД(B6;7;»0000011″)
Эта формула добавляет 7 дней к дате в B7, за исключением суббот и воскресений.
Функция РАБДЕНЬ.МЕЖД основана на функции РАБДЕНЬ, которая предназначена для добавления рабочих дней к дате. РАБДЕНЬ автоматически исключает субботу и воскресенье, а также может исключать список пользовательских праздников. РАБДЕНЬ.МЕЖД делает то же самое, но позволяет исключить любые дни недели, в дополнение к праздникам.
Чтобы исключить определенные дни недели, вы можете использовать предварительно сконфигурированный код или предоставить свой собственный код шаблона. Код шаблона должен состоять из 7 цифр, либо иметь ноль для каждого дня недели, начинающийся в понедельник и заканчивающийся в воскресенье. Значения, равные 1, исключаются, а дни с нулевыми значениями обрабатываются обычным образом.
Итак, если вы хотите добавить 7 дней к дате в ячейке A1, вы можете написать такие формулы:
= РАБДЕНЬ.МЕЖД (A1;7; «0000011») // исключить Сб; Вс
= РАБДЕНЬ.МЕЖД (A1;7; «0010011») // исключить Сб; Вс; Ср.
= РАБДЕНЬ.МЕЖД (A1;7; «0101011») // исключаем Сб; Вс; Вт; Чт
Добавить дни до даты
= Дата + дни
Чтобы добавить заданное количество лет к дате, вы можете использовать функцию ДАТАМЕС.
= B5 + C5
Даты в Excel — это только серийные номера. Число 1 представляет 1 января 1900 года, число 1000 — 26 сентября 1902 года и так далее.
Когда у вас есть действительная дата в Excel, вы просто добавляете дни непосредственно. Значения дня могут быть как положительными, так и отрицательными.
Например, с датой в A1 вы можете добавить 100 дней следующим образом:
= A1 + 100
В показанном примере формула решается следующим образом:
= B5 + C5
= 36861 + 7
= 36868
Когда отформатировано как дата, 36868 — 8 декабря 2000 года.
Добавить рабочие дни на персонализированные выходные дни
= РАБДЕНЬ.МЕЖД (начало_даты; дни; выходные; праздники)
Чтобы добавить или вычесть дни рабочих дней для даты, чтобы можно было рассчитать дату в будущем или прошлом, которая пропускает выходные дни (настраиваемые) и праздники, можно использовать функцию РАБДЕНЬ.МЕЖД. Праздники и выходные дни являются необязательными.
В этом примере формула в D5:
=РАБДЕНЬ.МЕЖД(B5;C5;11;B8:B10)
Эта формула добавляет 7 дней работы во вторник, 22 декабря. Три отпуска предоставляются, а выходные устанавливаются с использованием 11 аргументов в выходные, что означает «только воскресенье».
По умолчанию функция РАБДЕНЬ.МЕЖД исключает выходные дни (суббота и воскресенье). В этом случае, однако, мы поставили 11 для этого аргумента, что означает «только воскресенье».
Мы также предоставили список из 3 праздников, которые все выпадают в диапазоне дат, который рассчитывается, что означает, что праздники и воскресенья будут исключены.
Добавить время
= Время + (часы / 24)
Чтобы добавить определенное количество часов за раз, вы можете добавить часы, деленные на 24, или использовать функцию ВРЕМЯ.
В показанном примере формула в D5:
= B5 + (C5 / 24)
Примечание. Убедитесь, что результаты форматируются как время.
Время в Excel составляет 24 часа. Один час времени равен 1/24, а 1 минута времени равна 1 / (24 * 60) = 1/1440.
В результате, если у вас есть десятичное значение в течение 6 часов и время в A1, вы можете добавить 6 часов времени к значению в A1 следующим образом:
= A1 + (6/24)
Вы также можете добавить временные значения с помощью функции ВРЕМЯ. Чтобы добавить 15 часов к времени в A1, используйте:
= A1 + ВРЕМЯ (6;0;0)
Функция ВРЕМЯ избавляет вас от необходимости запоминать формулу для преобразования десятичных часов в Excel. Однако обратите внимание на то, что функция ВРЕМЯ будет возвращаться к нулю, когда значения превысят 24 часа.
Например, обратите внимание, как два подхода возвращают разные результаты в течение 25 часов:
= ВРЕМЯ(25;0;0) = 0;041667 = 1:00 в тот же день (1 час)
= 25/24 = 1.041667 = 1:00 на следующий день (25 часов)
Функция ВРЕМЯ возвращает эквивалент 1 часа, а 25/24 возвращает полное значение.
Вы можете получить ошибку, если попытаетесь вычесть часы из времени, когда результат будет отрицательным, поскольку Excel не допускает отрицательных значений времени.
Один из способов избежать этой проблемы — использовать формулу, подобную этой:
= ОСТАТ (время — (часы / 24); 1)
Здесь функция ОСТАТ заботится о негативной проблеме, используя функцию ОСТАТ для «переворачивания» отрицательных значений в требуемое положительное значение.
Другой способ избежать этой проблемы — начать с времени, которое включает значение даты. Это позволяет вам вычитать очень большое количество часов без какой-либо опасности получить отрицательный результат. Если вы не хотите видеть дату, отображаемую в результате, просто применяйте формат чисел только для времени.
Добавить минуты к часу
= Время + (минуты / 1440)
Чтобы добавить определенное количество минут за раз, вы можете добавить минуты, деленные на 1440, или использовать функцию ВРЕМЯ.
В показанном примере формула в D5:
= B5 + (C5 / 1440)
Примечание. Убедитесь, что результаты форматируются как время.
Время в Excel составляет 24 часа. Один час времени равен 1/24, а 1 минута времени равна 1 / (24 * 60) = 1/1440.
В результате, если у вас есть десятичное значение в течение 15 минут и время в A1, вы можете добавить 15 минут времени к значению в A1 следующим образом:
= A1 + (15/1440)
Вы также можете добавить временные значения с помощью функции ВРЕМЯ. Чтобы добавить 15 минут к времени в A1, используйте:
= A1 + ВРЕМЯ (0;15;0)
Функция ВРЕМЯ избавляет вас от необходимости запоминать формулу для преобразования десятичных минут в Excel. Однако обратите внимание на то, что функция ВРЕМЯ будет возвращаться к нулю, когда значения превысят 24 часа.
Например, 25 часов времени составляет 1500 минут. Обратите внимание на отличия:
= ВРЕМЯ (0;1500;0) = 0;041667 = 1:00 в тот же день
= 1500/1440 = 1.041667 = 1:00 на следующий день
Вы можете получить ошибку, если попытаетесь вычесть минуты из времени, когда результат будет отрицательным, поскольку Excel не допускает отрицательных значений времени.
Один из способов избежания данной проблемы — использовать формулу, подобную этой:
= ОСТАТ(время — (минуты / 1440); 1)
Здесь функция ОСТАТ заботится о негативной проблеме, используя функцию ОСТАТ для «переворачивания» отрицательных значений в требуемое положительное значение.
Другой способ избежания этой проблемы — начать со времени, которое включает значение даты. Это позволит вам вычитать очень большое количество минут без какой-либо опасности получить отрицательный результат. Если вы не хотите видеть дату, отображаемую в результате, просто применяйте формат чисел только для времени.
Добавить месяцы до даты
= ДАТАМЕС (дата; месяцы)
Чтобы добавить заданное количество лет к дате, вы можете использовать функцию ДАТАМЕС.
В показанном примере формула в D5:
= ДАТАМЕС(B5; C5)
Функция ДАТАМЕС полностью автоматическая. Просто введите действительную дату и количество месяцев, а ДАТАМЕС вернет новую дату. Чтобы вычесть месяцы из даты, поставьте отрицательное значение.
Чтобы двигаться вперед и назад в годах с определенной даты, вы можете умножить на 12 внутри ДАТАМЕС следующим образом:
= ДАТАМЕС (A1;12 * 10) // 10 лет
=ДАТАМЕС (A1;12 * 50) // 50 лет
Добавить года
= ДАТА(ГОД (дата) + годы; МЕСЯЦ(дата); ДЕНЬ(дата))
Чтобы добавить определенное количество лет к дате, вы можете использовать формулу, основанную на функции ДАТА, с помощью функций ГОД, МЕСЯЦ и ДЕНЬ.
В показанном примере формула в D5:
= ДАТА(ГОД (B5) + C5; МЕСЯЦ (B5); ДЕНЬ (B5))
Работая изнутри, функции ГОД, МЕСЯЦ и ДЕНЬ извлекают соответствующие компоненты даты:
= ГОД(B5) // 1960
= МЕСЯЦ (B5) // 3
= ДЕНЬ(B5) // 8
На внешнем уровне функция ДАТА просто пересобирает значения компонентов обратно в действительную дату Excel. Чтобы добавить годы к дате, нам просто нужно добавить значение в C5 к компоненту года до повторной сборки:
= ДАТА(ГОД (B5) + C5; МЕСЯЦ (B5); ДЕНЬ (B5))
Формула затем решается следующим образом:
= ДАТА(1960 + 10;3;8)
= ДАТА(1970;3;8)
= 8-мар-1970
Примечание. Если вам нужно добавить «четную» кратность 12 месяцев к дате (например, 12, 24, 36, 48 и т. д.), вы можете использовать гораздо более простую формулу, основанную на функции ДАТАМЕС.
Назначать баллы на основе позднего времени
= ЕСЛИ(время <ЗНАЧЕН («0:05»); 0; ЕСЛИ(время <ЗНАЧЕН(«0:15»); 1;
ЕСЛИ(время <ЗНАЧЕН(«0:30»); 2; ЕСЛИ(время <ЗНАЧЕН(«0:60»); 3;
ЕСЛИ(время <ЗНАЧЕН(«4:00»); 4; 5)))))
Чтобы назначить штрафные очки за опоздание, вы можете использовать вложенную формулу ЕСЛИ. В показанном примере формула в E5:
= ЕСЛИ (D5 <ЗНАЧЕН («0:05»); 0; ЕСЛИ (D5 < ЗНАЧЕН («0:15»); 1;
ЕСЛИ (D5 < ЗНАЧЕН («0:30»); 2; ЕСЛИ (D5 < ЗНАЧЕН («0:60»); 3;
ЕСЛИ (D5 < ЗНАЧЕН («4:00»); 4; 5)))))
Примечание. Разделители строк добавлены для удобства чтения.
Эта формула является классическим примером вложенной формулы ЕСЛИ, которая проверяет пороговые значения в порядке возрастания. Чтобы соответствовать графику, показанному в G4: G10, формула сначала проверяет по времени в D5, чтобы увидеть, не меньше ли она составляет 5 минут. Если это так, присваиваются нулевые точки:
ЕСЛИ(D5 <ЗНАЧЕН(«0:05»); 0;
Если результат логического теста выше ЛОЖЬ, формула проверяет, меньше ли D5, чем следующий порог, который составляет 15 минут:
ЕСЛИ(D5 < ЗНАЧЕН («0:15»); 1;
Такая же картина повторяется на каждом пороге. Поскольку тесты выполняются по порядку, от самого маленького до самого большого, нет необходимости в более сложных скобках.
Функция ЗНАЧЕН используется для того, чтобы значение времени обработки Excel обрабатывалось на каждом пороге как число вместо следующего.