Сведение параллельного времени начала и окончания в временные интервалы с помощью сводной таблицы Excel 2010

у меня есть таблица процессов и их начала и окончания (рассчитывается от времени начала и продолжительности), указанные по ID процесса:

Run ID  Duration    Start Time  End Time
200878  464     5/16/11 4:15    5/16/11 11:59
200879  76      5/16/11 4:22    5/16/11 5:38
200880  165     5/16/11 6:29    5/16/11 9:14
200881  44      5/16/11 9:44    5/16/11 10:28

мне нужен способ превратить данные в "временные интервалы", чтобы подсчитать количество запущенных процессов в течение каждого часа, используя встроенные сводные таблицы Excel.

для выдержки данных выше, я хочу эту диаграмму:

Timeslot Start  Timeslot End    Running Processes
5/16/11 3:00    5/16/11 4:00    0
5/16/11 4:00    5/16/11 5:00    2
5/16/11 5:00    5/16/11 6:00    2
5/16/11 6:00    5/16/11 7:00    2
5/16/11 7:00    5/16/11 8:00    2
5/16/11 8:00    5/16/11 9:00    2
5/16/11 9:00    5/16/11 10:00   3
5/16/11 10:00   5/16/11 11:00   2
5/16/11 11:00   5/16/11 12:00   1

мой текущий обходной путь использует функцию SUMIFS для подсчета строк это вписывается в каждый временной интервал. Это на самом деле сообщает точную статистику, которую я хочу, но со следующими недостатками:

  • "старт таймслот" раз надо вводить вручную, и распространяется на различные сроки представлены в исходной таблице.
  • ни один из механизмов фильтрации собственных сводных таблиц Excel не работает, как срезы, или упорядочивание по другим параметрам (мои фактические данные имеют другие поля, кроме "Run ID", который был удален для краткость)

таким образом, если возможно, я хотел бы получить те же данные с "реальными" сводными таблицами.

Я также возился с добавлением группировки по часам / дням/месяцам / годам в сводной таблице, но даже с опцией "показывать элементы без данных" тот факт, что процессы могут длиться более одного часа, вызывает недоотчет (процессы, которые охватывают определенный временной интервал, но не запускаются или не заканчиваются в нем, не учитываются для этого временного интервала.)

для ваших экспериментов, вот файл xlsx с некоторыми данными и моей собственной сводкой на основе SUMIFS:http://dl.dropbox.com/u/123900/timeslot%20pivot.xlsx

14
задан blendmaster
02.05.2023 14:23 Количество просмотров материала 2763
Распечатать страницу

1 ответ

честно говоря, я не вижу способа справиться с этим с помощью встроенной сводной таблицы Excel. Однако, вы можете создавать свои собственные таблицы, чтобы отобразить данные, которые вам нужны. Единственный ручной бит, который вам нужно сделать, - это создать столбцы времени начала и окончания слота, для которых вы хотите подсчитать количество процессов. После этого можно использовать формулу массива для получения количества процессов.

=COUNT(IF((H2>=$C:$C)*(H2<=$D:$D)+(I2>=$C:$C)*(I2<=$D:$D)>0,1,""))

введите это как формулу массива, нажав Ctrl + Shift+Enter. Столбец H содержит начало временного интервала, столбец I Таймслот концов, столбец C содержит Время начала в процессе таблицы, а столбец D содержит Время окончания процесса таблица. Обратите внимание, что формулу можно настроить так, чтобы она выходила далеко за пределы нижней части таблицы процессов, поэтому, если список процессов постоянно меняется, формула подсчета все равно вернет правильный результат.

0
отвечен Excellll 2023-05-03 22:11

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх