Как разделить период времени на равные периоды в Excel

Как разделить период времени на равные периоды в Excel

Я хотел бы найти способ разделить период времени на 4 часовых часовых пояса. То есть, если часть оборудования недоступна с 09:00 до 17:00, то это 8 часов, но мне нужно показать это в 4-часовом периоде 00 - 04:00, 04:00 - 08:00, 08:00 - 12:00 и т. д., чтобы оборудование было недоступно в течение 3 часов в интервале времени 08:00 - 12:00, в течение 4 часов в интервале времени 12:00 - 16:00 и в течение 1 часа в интервале времени 16:00 - 20:00. Оборудование может быть недоступно в течение любого периода времени свыше 24 часов, и в данный момент я кропотливо вручную делю время и надеюсь, что, возможно, есть более простой способ.

решение1

Я решил ответить на этот вопрос, хотя вам действительно следует продемонстрировать все предпринятые вами попытки и то, как это настраивается.

Ниже представлена ​​моя настройка. Вы вводите From и to в столбцы A и B, и он разбивает их на показанные ячейки.

введите описание изображения здесь

В ячейке C4 формула будет иметь вид:

=IF($B4>$A4,
    IF(OR(AND($A4<C$2,$B4<C$2),AND($A4>C$3,$B4>C$3)),0,MIN($B4,C$3)-MAX($A4,C$2)),
    IF(OR(AND($B4<C$2,$A4<C$2),AND($B4>C$3,$A4>C$3)),(C$3-C$2),(C$3-C$2)+(MIN($B4,C$3)-MAX($A4,C$2)))
)

Или с именами ячеек это будет выглядеть так:

=IF(FROM>TO,
    IF(OR(AND(TO<BIN_FROM,FROM<BIN_FROM),AND(TO>BIN_TO,FROM>BIN_TO)),0,MIN(FROM,BIN_TO)-MAX(TO,BIN_FROM)),
    IF(OR(AND(FROM<BIN_FROM,TO<BIN_FROM),AND(FROM>BIN_TO,TO>BIN_TO)),(BIN_TO-BIN_FROM),(BIN_TO-BIN_FROM)+(MIN(FROM,BIN_TO)-MAX(TO,BIN_FROM)))
)

Разбито:

Первый оператор if проверяет, происходит ли событие в течение одного 24-часового периода (To следует за from), в противном случае оно должно быть перенесено на следующий день.

Вторая строка проверяет, находятся ли оба времени за пределами диапазона ячейки (либо оба меньше, либо оба больше), если это так, то в этой ячейке нет данных. Если они не оба за пределами, то данные там есть. Вычитая максимальное значение from из минимального значения to, вы получаете, сколько времени находится в ячейке.

Третья строка похожа на вторую, но она определяет, сколько времени прошло.нетв корзине и вычитает это значение из полной ширины корзины.

решение2

Вот решение, которое показывает время в «часовом поясе» (ячейках):

        24 часа

(т.е. оборудование недоступно с 09:00 до 12:00, с 12:00 до 16:00 и с 16:00 до 17:00). Формулы в ячейках D5- D7следующие:

D5 = =IF(AND($B5>D$2,$B5<D$3), $B5, IF(AND($B5<D$2,$B6>D$2), D$2, ""))
D6 = =IF(AND($B6>D$2,$B6<D$3), $B6, IF(AND($B5<D$3,$B6>D$3), D$3, ""))
D7 = =IF(OR(D5="",D6=""), "", D6-D5)

Объяснение:

  • =IF(AND($B5>D$2,$B5<D$3), $B5, …– еслиОтвремя (время начала недоступности оборудования) находится в пределах этого бина, то отобразитеОтвремя.
  • … IF(AND($B5<D$2,$B6>D$2), D$2, …– если время начала данного бина попадает в период недоступности оборудования, то отобразить время начала данного бина.
  • … ""))– в противном случае пусто.

Как показано выше, это не обрабатывает многодневные периоды недоступности оборудования напрямую. Но вы можете заставить это работать, явно установивКвремя быть на следующий день:

48 часов

Связанный контент