1

Say клеток A3 = '12: 00 Pm» и B3 = '6: 00 PM'Google листы, Вычитание перерывы в диапазоне часов

Эта формула возвратит '6', для 6 часов работы.

=IF(ISERROR((TIMEVALUE(B3)-TIMEVALUE(A3))*24),"0",(TIMEVALUE(B3)-TIMEVALUE(A3))*24) 

Однако, я хочу формулу вычитают брейки для работы определенного гнева часов. Скажем, например:

  • 4,5 часа = Без изменений

  • между 5-7 часов = вычесть .5 час (30 минут)

  • 7+ часов = вычесть 1 час

Что я могу добавить в код для достижения этой цели?

ответ

2

ли эту формулу работы, как вы хотите:

=IF(ISERROR((TIMEVALUE(B3)-TIMEVALUE(A3))*24),"0",(TIMEVALUE(B3)-TIMEVALUE(A3))*24)-LOOKUP((TIMEVALUE(B3)-TIMEVALUE(A3))*24,{0,0;5,0.5;7,1})

+0

Возможно ли вернуть «0» вместо «#VALUE!» когда не было добавлено времени? –

+0

Ответил на мой вопрос. Для тех, кому это нужно. '= if (iserror (ваша формула здесь), 0, ваша формула здесь)' –

0

Вы можете использовать вложенные если заявления - это неаккуратно, но вы можете скопировать и вставить в ту же клетку (но, возможно, изменить номер строки в зависимости от того, где начинается данные):

= если (если (IsError ((timevalue (B1) -timevalue (A1)) * 24), «0», (timevalue (B1) -timevalue (A1)) * 24) < 4.5, if (iserror ((timevalue (B1) -timevalue (A1)) * 24), "0", (ВРЕМЗНАЧ (В1) -timevalue (А1)) * 24), если (и (если (ISERROR ((ВРЕМЗНАЧ (В1) -timevalue (А1)) * 24), "0" , (ВРЕМЗНАЧ (В1) -timevalue (А1)) * 24)> 5, если (ISERROR ((ВРЕМЗНАЧ (В1) -timevalue (А1)) * 24), "0", (ВРЕМЗНАЧ (В1) -timevalue (А1)) * 24), «0», (значение времени (B1) -timevalue (A1)) * 24) -0,5, если (iserror ((timevalue (B1) -timevalue (A1)) * 24) (если (ISERROR ((ВРЕМЗНАЧ (В1) -timevalue (А1)) * 24), "0", (ВРЕМЗНАЧ (В1) -timevalue (А1)) * 24)> = 7, если (ISERROR ((т imevalue (В1) -timevalue (А1)) * 24), "0", (ВРЕМЗНАЧ (В1) -timevalue (А1)) * 24) -1, если (ISERROR ((ВРЕМЗНАЧ (В1) -timevalue (А1)) * 24), «0», (timevalue (B1) -timevalue (A1)) * 24))))

Более чистый способ сделать это - создать дополнительные столбцы для каждого интервала прерывания (например, столбец C все еще вычисляет нескорректированное рабочее время, но добавляет столбец D, который равен -0.5, если столбец C находится между 5 и 7 и добавляет столбец E, который равен -1, если столбец C больше 7, тогда столбец F добавляет столбцы C, D и E)