Попытка составить немного более сложную сверхурочную работу здесь:
Работнику платят:
- 1 раз в час в будние дни (пн-пт) с 08:30 до 17:30
- 1,5-часовая ставка в будние дни (пн-пт) до 08:30 или после 17:30
- 1,5-часовая ставка по субботам
- 2х почасовая ставка по воскресеньям и в праздничные дни
Макет листа:
|Date |Day |Slip No |Name |Destination |Start Time |End Time |Total Hours Worked |Basic Hours |OT @ 1.5 |OT @ 2.0
Поэтому я ищу формулы для столбцов
- [H] = Отработанные часы
- [I] = Основные часы
- [J] = ОТ @ 1,5
- [K] = ОТ @ 2.0
Я только ищу чч: мм представление того, что работало; поэтому нет необходимости в поле «почасовая ставка».
[H] =MOD(G6-F6,1)
[I] =IF(F6<G6,MIN(G6,Data!F2)-MAX(F6,Data!E2),MAX(0,Data!F2-F6)+MAX(0,G6-Data!E2))
[J] =H6-I6
[K] =IF(OR(WEEKDAY($A6)=1,ISERROR(VLOOKUP($A6,tblPublicHolidays,1,FALSE))=FALSE),$H6,0)
[H] = работает;
[K] = работает;
[I]/[J] - это проблема, и я чувствую, что если бы я мог просто начать работать, у меня тоже будет решение для J. J - это просто "общее количество часов" минус "базовые часы".
tblPublicHolidays - это список выходных дней, которые у нас есть.
Данные!E2 = время начала - то есть: 08:30
Данные!F2 = время окончания - то есть: 17:30
Для целей этой демонстрации первая строка (6) имеет значение времени начала 18:30 и время окончания 18:45. Я получил формулу [I] с https://exceljet.net/formula/total-hours-that-fall-between-two-times, но, похоже, она не работает по следующим причинам:
- [I] отображается как набор хешей (#), если у меня есть формат «Время»
- Если я изменю [I] на числовой формат, то он будет отображаться как -0.04
- Кажется, у [J] всегда на 1 час больше, чем предполагалось (в этом примере 1:15 вместо 0:15)