Вы можете использовать вложенные если заявления - это неаккуратно, но вы можете скопировать и вставить в ту же клетку (но, возможно, изменить номер строки в зависимости от того, где начинается данные):
= если (если (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)
Возможно ли вернуть «0» вместо «#VALUE!» когда не было добавлено времени? –
Ответил на мой вопрос. Для тех, кому это нужно. '= if (iserror (ваша формула здесь), 0, ваша формула здесь)' –