Excel - размещение значений, попадающих в определенный временной диапазон - PullRequest
0 голосов
/ 11 июня 2018

У меня есть следующие данные о продолжительности отдельных услуг.

     A                          B                C                      D
Usage Start (Local time)    Start Time  Usage Until (Local time)    End Time
03.03.2018 10:00           12:00:00 AM     03.03.2018 00:00      1:00:00 AM
03.03.2018 00:00            1:00:00 AM     03.03.2018 00:00      2:00:00 AM
03.03.2018 16:30            1:00:00 AM     03.03.2018 00:00      3:00:00 AM

И я хочу посчитать, сколько раз время попадает в определенный диапазон (например, 00:00 - 01:00)

     Start  End  Counts
     00:00  01:00   1
     01:00  02:00   2
     02:00  03:00   1
     03:00  04:00   
     04:00  05:00   
     05:00  06:00   

Какую формулу следует использовать и как ее применять?

Я пробовал это

=COUNTIFS($B$2:$B$566,">="&A2,$D$2:$D$566,"<"&B2)

И это

=SUMPRODUCT(($B$2:$B$566>= A2)*($D$2:$D$566< B2))

Но это не учитывает более 24 часов (напр. 3/3/201813:00 - 4/4/2018 14:00, 25 часов)

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Похоже, вы игнорируете часть времени в столбцах A и C.Предполагая, что ваши ячейки начального / конечного часа находятся в столбцах F и G, приведенная ниже формула даст вам число раз, когда событие прошло через вашу первую ячейку часа (вы должны ввести его как формулу массива - * Ctrl + 1006 * смещение + 1010 * введите *).Заполните поля для последующих часовых интервалов.

=SUM(($B$2:$B$4<F2+TIME(0,30,0))+($D$2:$D$4>F2+TIME(0,30,0))+INT($C$2:$C$4)-INT($A$2:$A$4)-1)

Это будет считать событие в часовом интервале, если событие активно в получасовой отметке.

Если событие должно охватыватьвсе время, используйте эту формулу (снова с ctrl + shift + введите ):

=SUM(($B$2:$B$4<=F2)+IF(G2>F2,($D$2:$D$4>=G2))+INT($C$2:$C$4)-INT($A$2:$A$4)-1)
0 голосов
/ 11 июня 2018

Было немного сложнее, чем я ожидал, но я получил его на работу.

Хотя, прежде чем мы начнем, вам нужно немного отформатировать таблицу. Вы не можете иметь дату и время в одной и той же ячейке (поскольку Excel не может распознать хранение двух форматов в 1 ячейке).
Вместо этого отформатируйте таблицу следующим образом:

enter image description here

Далее мы должны создать несколько скрытых строк (технически вы можете вставить то, что я собираюсь сделать, в 1 гигантскую формулу, но для ясности я предпочитаюскрытые строки)

Сначала мы сосредоточимся на разнице во времени в часах.Создание двух следующих столбцов

Кроме того, убедитесь, что вы установили формат в этих вновь добавленных строках на номер.Технически это будет работать без него, но это будет выглядеть запутанно для человеческого глаза

enter image description here

В Разница во времени мыиспользуйте следующую формулу =ABS(F2-C2) * 24

В столбце overnight h : =IF(C2>F2, 24-G2, G2) Это используется для правильного подсчета с датами перехода (например, 23:00 1/1/18 -> 01:00 02/1/18) в этом случае мы не хотим добавлять дополнительные 24 часа.

Это будут часы, которые будут работать полностью, но мы также должны убедиться, что формулаработает, когда есть больше чем одна ночь разницы (например, 1/1/18 -> 3/1/18)

Далее, мы добавляем эти две строки

enter image description here

В столбце Разница дат , как следует из названия столбца =DATEDIF(A2, D2, "d") * 24

И последнее, но не менее важное: за ночьдельта в основном тот же принцип, что и в течение ночи h, но с датами вместо часов

Так что теперь, если мы скрыли строки, добавили следующую формулу, чтобы получить =H2+I2-J2, мы получаем oТаблица поиска:

enter image description here

Что соответствует ожидаемому результату!:)


РЕДАКТИРОВАТЬ : Если вы не хотите использовать часы в качестве единого целого и учитываете только то, сколько раз истек интервал в 24 часа, используйте следующую формулу

=IF(C2>F2, DATEDIF(A2, D2, "d")-1, DATEDIF(A2, D2, "d"))

(в предположении, что c2, f2, a2, d2 находятся в столбцах, как в моей исходной таблице, которую я предоставил)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...