Определение даты и времени в пределах рабочих часов (Microsoft Excel)
У Кена есть дата и время, хранящиеся в ячейке C3. Ему нужна формула, чтобы определить, соответствуют ли эта дата и время обычным рабочим часам (с 8:00 до 17:00 с понедельника по пятницу). Кен может легко проверить время, но не может придумать, как узнать, рабочий ли день.
Есть множество формул, которые вы можете придумать для решения этой ситуации. Ключевыми компонентами любой формулы являются то, что вы определяете, находится ли дата в диапазоне с понедельника по пятницу (что, по словам Кена, он знает, как это сделать), и определяете, находится ли время в диапазоне с 8:00 до 17:00. Как только вы определите эти два факта, вы можете использовать функцию И, чтобы определить общее «истинное» или «ложное» условие.
Например, вы можете использовать следующую формулу, чтобы определить, находится ли дата в диапазоне с понедельника по пятницу:
=WEEKDAY(C3, 2) < 6
Это возвращает либо True, либо False, и работает, потому что второй параметр функции WEEKDAY, когда установлен в 2, указывает, что WEEKDAY возвращает значение от 1 до 7, где 1 = понедельник и 7 = воскресенье. Таким образом, WEEKDAY вернет 1, 2, 3, 4 или 5 для диапазона с понедельника по пятницу.
Для временной части формулы вы можете использовать функцию ЧАС следующим образом:
=HOUR(C3) >= 8
Это возвращает True или False в зависимости от того, больше или равен час 8:00 утра. Аналогичным образом вы можете проверить, наступил ли час до 17:00 следующим образом:
=HOUR(C3) <= 17
Разобрав эти три теста, вы можете объединить их все, используя функцию И:
=AND(WEEKDAY(C3, 2) < 6, HOUR(C3) >= 8, HOUR(C3) <= 17)
Поскольку функция ЧАС возвращает целое число (от 0 до 23), вы можете еще больше сократить формулу следующим образом:
=AND(WEEKDAY(C3, 2) < 6, HOUR(C3) > 7, HOUR(C3) < 18)
Если все три условия соблюдены, функция И возвращает True.
Таким образом, вы можете заключить эту формулу в оператор IF, например:
=IF(AND(WEEKDAY(C3, 2) < 6, HOUR(C3) > 7, HOUR(C3) < 18), "Working", "Non-Working")
Это отлично работает, если только вы не хотите учитывать праздники или ваша рабочая неделя отличается от понедельника по пятницу. В этом случае вам нужно изменить только первую часть формулы; часть, которая использует функцию WEEKDAY. Вместо этого я предлагаю полагаться на функции NETWORKDAYS или NETWORKDAYS.INTL. Вместо того, чтобы описывать здесь, как использовать эти функции, вы захотите обратиться к ExcelTip, озаглавленному «` link: / excelribbon-Calculating_Business_Days [Расчет рабочих дней] `».
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (4270) применим к Microsoft Excel 2007, 2010, 2013 и 2016.