Итак, мне удалось сделать это самому. Я понял, что формат времени не очень легко вытащить из ячейки, поэтому я решил разобрать элементы ячейки. Это означает, что из ячейки, которая читает «9.30-5.15» в текстовом формате, мне нужно Excel, чтобы понять:
- Начать смену в 9 часов
- И 30 минут
- & 0 секунд
- Оставить смену на 5 часов
- & 15 минут
- & 0 секунд
- 5 часов - это меньше, чем 9 часов, поэтому добавьте 12 часов, чтобы учесть 24 часа
- Вычтите теперь большее время из теперь меньшего времени
Следующая формула выглядит довольно уродливо, но она, безусловно, работает (до определенного момента).
=IF(ISBLANK(A1),TIME(0,0,0),IFERROR(IF((--MID(A1,FIND("-",A1)+1,9999))<=(--LEFT(A1,FIND("-",A1)-1)),TIME(IFERROR(MID(A1,FIND("-",A1)+1,LEN(A1)-SEARCH(".",A1,SEARCH("-",A1))-1),RIGHT(A1,LEN(A1)-FIND("-",A1))),IFERROR(RIGHT(A1,LEN(A1)-SEARCH(".",A1,FIND("-",A1))),0),0)-TIME(IFERROR(MID(A1,1,SEARCH(".*-",A1)-1),(LEFT(A1,FIND("-",A1)-1))),IFERROR(MID(A1,SEARCH(".*-",A1)+1,SEARCH("-",A1)-SEARCH(".*-",A1)-1),0),0)+TIME(12,0,0),TIME(IFERROR(MID(A1,FIND("-",A1)+1,LEN(A1)-SEARCH(".",A1,SEARCH("-",A1))-1),RIGHT(A1,LEN(A1)-FIND("-",A1))),IFERROR(RIGHT(A1,LEN(A1)-SEARCH(".",A1,FIND("-",A1))),0),0)-TIME(IFERROR(LEFT(A1,FIND(".*-",A1)-1),(LEFT(A1,FIND("-",A1)-1))),IFERROR(MID(A1,FIND(".",A1)+1,SEARCH(".*-",A1)),0),0)),(TIME(0,0,0))))
Эта формула позволяет считать пустую ячейку нулевым временем, а ячейку, заполненную словами, считать нулем, чтобы не испортить вычисление.
Целью этого является создание месячной ротации, а время вводится в следующих форматах:
- 9-3
- 9.30-3
- 9-3.30
- 9.30-3.30
Это означает, что менеджер смены может вводить время (которое может изменяться в зависимости от суточной дисперсии), и лист будет рассчитывать 6 рабочих дней недели, выделяя вычисления при достижении их квоты часов с помощью условного форматирования, как на изображении:Расчет поворота по расписанию
Надеюсь, это поможет любому, кто пытается сделать то же самое! Есть только одна ошибка, с которой я не справился - вы не можете ввести двухзначный час как второй раз. Таким образом, вы можете ввести 3-9,59, но вы не можете ввести 3-10. Это просто потому, что никто, где я проектирую это для работ после 6 вечера, и мне не нужно было это исправлять .. так зачем беспокоиться. Это не так сложно исправить, если вы хотите отсеять его, чтобы использовать его.
Пожалуйста, дайте мне знать, если это окажется полезным для вас, так как я старался изо всех сил, чтобы сделать эту работу, как это происходит в течение некоторого времени!