Przestawianie współbieżnych czasów rozpoczęcia i zakończenia w szczeliny czasowe za pomocą programu Excel 2010 PivotTable

3

Mam tabelę procesów oraz odpowiadające im czasy rozpoczęcia i zakończenia (obliczone na podstawie godziny rozpoczęcia i czasu trwania), wymienione według identyfikatora procesu:

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

Potrzebuję sposobu przestawienia danych w „szczeliny czasowe”, aby policzyć liczbę uruchomionych procesów w ciągu każdej godziny, korzystając z wbudowanych tabel przestawnych programu Excel.

Dla powyższego fragmentu danych chcę ten wykres:

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

Moje obecne obejście korzysta z funkcji SUMIFS do zliczania wierszy pasujących do każdej szczeliny czasowej. To faktycznie podaje dokładne statystyki, które chcę, ale z następującymi wadami:

  • Czasy „rozpoczęcia szczeliny czasowej” należy wprowadzić ręcznie i rozszerzyć, aby obejmowały zakres czasów przedstawionych w oryginalnej tabeli.
  • Żaden z mechanizmów filtrowania natywnych tabel przestawnych programu Excel nie działa, podobnie jak fragmentatory lub układanie według innych parametrów (moje rzeczywiste dane mają inne pola oprócz „Run ID”, który został usunięty dla zwięzłości)

Dlatego, jeśli to możliwe, chciałbym w jakiś sposób uzyskać te same dane za pomocą „prawdziwych” tabel przestawnych.

Pomyślałem też o dodaniu grupowania według godziny / dnia / miesiąca / roku w tabeli przestawnej, ale nawet z opcją „Pokaż elementy bez danych” fakt, że procesy mogą trwać dłużej niż godzinę powoduje zaniżanie raportów (procesy które rozciągają się na określony przedział czasu, ale nie zaczynają się ani nie kończą, nie są liczone dla tego przedziału czasu).

Do eksperymentów oto plik xlsx z niektórymi danymi i moją własną osią przestawną opartą na SUMIFS: http://dl.dropbox.com/u/123900/timeslot%20pivot.xlsx

Steven Ruppert
źródło

Odpowiedzi:

0

Szczerze mówiąc, nie widzę sposobu, aby sobie z tym poradzić dzięki wbudowanej tabeli przestawnej programu Excel. Możesz jednak utworzyć własną tabelę do wyświetlania potrzebnych danych. Jedynym ręcznym bitem, który musisz zrobić, jest utworzenie kolumn czasów rozpoczęcia i zakończenia automatu, dla których liczy się proces. Gdy już to zrobisz, możesz użyć formuły tablicowej, aby uzyskać liczbę procesów.

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

Wprowadź to jako formułę tablicową, naciskając Ctrl + Shift + Enter. Kolumna H zawiera początek szczeliny, kolumna I zawiera koniec szczeliny, kolumna C zawiera czas rozpoczęcia w tabeli procesów, a kolumna D zawiera czas zakończenia w tabeli procesów. Pamiętaj, że możesz ustawić formułę, aby wyglądała znacznie poza dolną krawędzią tabeli procesów, więc jeśli lista procesów ciągle się zmienia, formuła zliczania nadal zwróci poprawny wynik.

Excellll
źródło