Трудно следовать тому, что вы просите, но вот моя попытка решить ее, основываясь на некоторых предположениях о том, что вы говорите:
Допущения:
- Столбец A - это день.
- Столбец C - это время входа.
- Столбец D - время ожидания.
- Часы выходного дня всегда сверхурочные.
- 30-минутный перерыв вычитается из сверхурочных часов в любой день.
- Вы пытаетесь рассчитать общее количество сверхурочных часов в день.
Шаг 1: Убедитесь, что у вас есть часы, чтобы даже подумать.
= IF((D19-C19) > 0,<do something here>,0)
Шаг 2: Сделайте что-то другое в будние дни против выходных.
= IF((D19-C19) > 0, IF(WEEKDAY($A19,2)>5, <calculate weekend>, <calculate weekday>), 0)
Шаг 3: Подсчитайте выходные, но никогда не допускайте отрицательного числа.(Допущение: если человек работает сверхурочно 15 минут, это не сверхурочное время вообще.)
= IF( (D19-C19) > 0,
IF(WEEKDAY($A19,2)>5,
MAX((D19-C19)*24-0.5, 0), <calculate weekday>), 0)
Шаг 4: Рассчитать рабочие дни, но никогда не разрешать отрицательное число.(Допущение: если человек работает сверхурочно 15 минут, это не сверхурочное время вообще.)
= IF( (D19-C19) > 0,
IF(WEEKDAY($A19,2)>5,
MAX((D19-C19)*24-0.5, 0),
MAX((D19-C19)*24-8.5, 0)
),
0)
Шаг 5: Оптимизация - поскольку похоже, что функция MAX обрабатывает случай, когдаD19-C19 равен 0, нам не нужно внешнее выражение IF
= IF(WEEKDAY($A19,2)>5,
MAX((D19-C19)*24-0.5, 0),
MAX((D19-C19)*24-8.5, 0)
)
... и я думаю, что это дает вам то, что вы хотите.