Я собираюсь предположить, что столбец A является реальным значением даты, отформатированным, чтобы показать также название дня. Это может быть сделано с пользовательским форматом DDD dd/mm
.
В праздничные часы необходимо определить, является ли столбец А воскресным. Это можно сделать с помощью функции WEEKDAY()
, которая возвращает 1
для воскресенья.
Вы также должны включить государственные праздники, которые Excel не обслуживает изначально, потому что праздники в каждой стране разные. Вы можете настроить список праздников на другом листе и дать этому списку имя диапазона (скажем, Holidays
). Затем ваши расчеты должны определить, встречается ли столбец A в этом диапазоне. Используйте VLOOKUP()
. VLOOKUP
имеет особую причуду в том, что он будет возвращать #N/A
если значение не найдено, поэтому вам нужно проверить наличие ошибки.
Таким образом, день является воскресным, если WEEKDAY(A13)=1
и выходным, если VLOOKUP(A13,Holidays,1,FALSE)
не является ошибкой.
Ячейка I13
должна будет содержать условие, которое объединяет эти два теста. Вы можете просто добавить их вместе, если ваш список праздников не содержит воскресенья.
=IF(WEEKDAY(A13)=1,F13,0) + IF(ISERROR(VLOOKUP(A13,Holidays,1,FALSE)),0,F13)
Обратите внимание, что здесь я использовал F13
, общее количество часов, поскольку маловероятно, что работа в выходные дни будет иметь право на сверхурочные и праздничные премии, и я подозреваю, что сверхурочные - это простой расчет TimeOut - TimeIn - Breaks - DailyTimeToWork
(который является постоянным набором в другом месте). Поскольку вопрос не определяет точные бизнес-правила, вам почти наверняка понадобится настроить эти предложения.