-1

Я хотел бы найти способ разделить период времени на 4 часовых часовых пояса. То есть, если единица оборудования недоступна с 09:00 до 17:00, то есть 8 часов, но мне нужно показать это в течение 4 часов: 00 - 0400, 0400 - 0800, 0800 - 1200 и т.д., Чтобы оборудование было недоступно в течение 3 часов во времени слот 0800 - 1200, на 4 часа во временном интервале 1200 - 1600 и 1 час во временном интервале 1600 - 2000. Оборудование может быть недоступно в течение любого периода времени в течение 24 часов, и в данный момент я старательно сокращаю время вручную и надеюсь, что может быть более простой путь.

2 ответа2

1

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

Ниже моя установка. Вы помещаете ваш От и до в столбцы А и В, и он разделяет его на показанные корзины.

В ячейке 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 is after from), в противном случае он должен быть перенесен на следующий день.

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

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

0

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

        24 часа

(т. е. оборудование недоступно с 0900 до 1200, с 1200 до 1600 и с 1600 до 1700).  Формулы в ячейках 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 часов

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .