Udostępnij za pośrednictwem


Dodawanie miary czasu w stanie do raportu usługi Power BI

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Czas spędzony przez element roboczy w określonym stanie lub serii stanów przepływu pracy jest ważnym aspektem zrozumienia wydajności. Widżety Analizy Czasu Cyklu i Czasu Realizacji dostarczają pewne miary czasu w określonym stanie. Jednak te widżety mogą nie mieć żądanego poziomu szczegółów.

Ten artykuł zawiera przykłady użycia wyrażeń analizy danych (DAX) do oceniania czasu spędzonego przez elementy robocze w różnych stanach. W szczególności dowiesz się, jak dodać następującą miarę i kolumny obliczeniowe do raportów usługi Power BI i użyć ich do generowania różnych wykresów trendów. Wszystkie pola są kolumnami obliczeniowymi, z wyjątkiem pierwszej na liście.

Liczba opis
Liczba elementów roboczych (miara) Oblicza liczbę unikalnych elementów roboczych na podstawie ostatniego dnia wpisu dla elementu roboczego.
Kolejność sortowania stanu Dodaje kolumnę do sortowania stanów workflowu na podstawie sekwencji kategorii stanu
Data poprzednia Dodaje kolumnę, która oblicza poprzednią datę na podstawie kolumny Date
Różnice dat w dniach Dodaje kolumnę, która oblicza liczbę dni między kolumnami Date i Date Previous
Jest ostatni dzień w stanie (geograficznym/określonym) Dodaje kolumnę określającą, czy wartość Date jest ostatnim dniem, w którym element roboczy znajdował się w stanie State
Czas stanu w dniach Dodaje kolumnę, która oblicza liczbę dni spędzonych w elemencie roboczym w każdym stanie
Poprzedni stan Dodaje kolumnę, która identyfikuje poprzedni stan dla każdego wiersza w tabeli danych
Stan został zmieniony Dodaje kolumnę określającą datę przejścia elementu roboczego z jednego stanu do innego
Przepływ stanu Dodaje kolumnę, która ilustruje przepływ stanu jako element roboczy przechodzi z jednego stanu do innego
Liczba zmian stanu Dodaje kolumnę, która oblicza liczbę przypadków przejścia elementu roboczego z jednego stanu do innego
Liczba zmian stanu — ukończono po raz pierwszy Dodaje kolumnę, która określa, ile razy element roboczy przechodzi do stanu Ukończono po raz pierwszy. Innymi słowy, gdy przechodzi z dowolnego innego stanu do stanu Ukończono.
Liczba zmian stanu - ostatnio proponowanych Dodaje kolumnę, która określa, czy element roboczy był wcześniej w stanie Proponowany, po przejściu do późniejszego stanu State
Czas ponownego uruchomienia stanu w dniach Dodaje kolumnę, która oblicza, ile dni element roboczy spędził w stanie ponownego uruchomienia
Czas na ponowne opracowanie w dniach Dodaje kolumnę, która oblicza dni, w których element roboczy przebywa w stanie innym niż Ukończono

Ważne

  • Podczas dodawania kolumny obliczeniowej lub miary zgodnie z przykładami przedstawionymi w tym artykule zastąp Nazwa widoku nazwą tabeli dla widoku analitycznego lub tabeli danych. Na przykład zastąp Nazwa widoku ciągiem Aktywne usterki.
    Zrzut ekranu przedstawiający kartę Narzędzia tabel usługi Power BI z nazwą tabeli danych.
  • Analiza nie obsługuje poprawek w ciągu dnia. Te przykłady mają największą precyzję przy korzystaniu z interwału Dziennego przy odniesieniu się do widoku analizy.
  • Wszystkie rewizje wewnątrz dnia lub wewnątrz okresu (tygodniowe/miesięczne) są ignorowane przez obliczenia. Może to prowadzić do nieoczekiwanych wyników w konkretnych sytuacjach, na przykład gdy element roboczy nie pokazuje czasu "W toku", mimo że jest w statusie "W toku" przez mniej niż dzień.
  • Domyślne agregacje usługi Power BI są używane zawsze, gdy jest to możliwe, zamiast tworzyć miary.
  • Niektóre obliczenia obejmują +0 , aby upewnić się, że wartość liczbowa jest uwzględniona dla każdego wiersza zamiast pustego.
  • Może być konieczne skorygowanie niektórych definicji kolumn obliczeniowych na podstawie stanów przepływu pracy używanych przez projekt. Jeśli na przykład projekt używa Nowy, Aktywny i Zamknięty zamiast Proponowany, W toku i Ukończony.
  • Kolumna Data wspomniana w tym artykule nie jest kolumną natywną w ramach Azure DevOps; jest to kolumna pochodna utworzona w Power BI, aby ułatwić raportowanie Czasu w stanie. Tę kolumnę można utworzyć przy użyciu istniejących kolumn związanych z datą, takich jak "Zmieniono datę" lub "Data zmiany stanu".

Wymagania wstępne

Kategoria Wymagania
poziomy dostępu - Członek projektu.
— Co najmniej podstawowy dostęp.
Uprawnienia użytkownika Domyślnie członkowie projektu mają uprawnienia do wykonywania zapytań w usłudze Analytics i tworzenia widoków. Aby uzyskać więcej informacji na temat innych wymagań wstępnych dotyczących włączania usługi i funkcji oraz ogólnych działań śledzenia danych, zobacz Uprawnienia i wymagania wstępne dotyczące dostępu do analizy.

Uwaga

Aby wykonać wszystkie miary czasu w stanie opisane w tym artykule, pamiętaj, aby uwzględnić następujące pola w widokach analizy, dodatku Power Query lub zapytaniu OData: Data utworzenia i Kategoria stanu oprócz pól domyślnych: Ścieżka obszaru, Przypisana do, Ścieżka iteracji, Stan, Tytuł, Identyfikator elementu roboczego, i Typ elementu roboczego.

Należy również rozważyć użycie widoku analitycznego o dziennej granularności. Przykłady w tym artykule są oparte na widoku Analizy aktywnych usterek zdefiniowanym w Tworzenie aktywnego raportu usterek w Power BI na podstawie niestandardowego widoku analizy, z wyjątkiem, że wybrano 60 dni Historii i dziennej szczegółowości. Określ również, czy chcesz przejrzeć ukończone lub zamknięte elementy robocze.

Dodaj miarę Liczby elementów roboczych

Aby uprościć szybkie generowanie raportów, zaprojektowaliśmy widoki analizy do pracy z domyślnymi agregacjami w usłudze Power BI. Aby zilustrować różnicę między domyślną agregacją a miarą, zaczynamy od prostej miary liczby elementów roboczych.

  1. Załaduj widok analizy do programu Power BI Desktop. Aby uzyskać szczegółowe informacje, sprawdź Nawiązywanie połączenia z łącznikiem danych Power BI, Łączenie z widokiem analizy.

  2. Wybierz tabelę danych, a następnie na karcie Narzędzia tabel w sekcji Obliczenia na wstążce wybierz pozycję Nowa miara.

    Zrzut ekranu przedstawiający kartę Narzędzia tabel usługi Power BI z nową miarą.

  3. Zastąp tekst domyślny poniższym kodem, a następnie wybierz znacznik wyboru.

    Work Items Count=CALCULATE(COUNTROWS ('View Name'),LASTDATE ('View Name'[Date]))
    

    Miara Liczba elementów roboczych wykorzystuje funkcje DAX: CALCULATE, COUNTROWS i LASTDATE, które zostały opisane szczegółowo później w tym artykule.

    Uwaga

    Pamiętaj, aby zastąpić nazwę widoku nazwą tabeli widoku Analiza. Na przykład tutaj zastępujemy Nazwa widokuaktywnymi usterkami.

    Zrzut ekranu przedstawiający zakładkę Narzędzia miar usługi Power BI, składnia Liczba elementów roboczych.

Jak miara różni się od kolumny obliczeniowej

Miara zawsze oblicza całą tabelę, w której kolumna obliczeniowa jest specyficzna dla jednego wiersza. Aby uzyskać więcej informacji, zobacz Calculated Columns and Measures in DAX (Kolumny obliczeniowe i miary w języku DAX).

Porównaj miarę Liczba elementów roboczych z domyślną agregacją liczby na podstawie identyfikatora elementu roboczego. Poniższy obraz został utworzony przez dodanie wizualizacji Karta oraz miary Liczba elementów roboczych do pierwszej karty i właściwości Identyfikator elementu roboczego do drugiej karty.

Zrzut ekranu strony raportu Power BI z dwoma kartami pokazującymi miarę Liczba elementów roboczych oraz właściwość Identyfikator elementu roboczego.

Aby uzyskać poprawną liczbę przy użyciu domyślnej agregacji, zastosuj filtr Czy jest aktualny równa się 'Prawda'. Ten wzorzec stosowania filtrów do domyślnej agregacji jest podstawą dla wielu przykładów podanych w tym artykule.

Zrzut ekranu strony raportu Power BI z filtrowaną liczbą identyfikatorów elementów roboczych.

Dodaj kolejność sortowania stanu

Domyślnie usługa Power BI wyświetla stany posortowane alfabetycznie w wizualizacji. Może to być mylące, gdy chcesz wizualizować czas trwania stanu i Proponowane jest wyświetlane po W toku. Poniższe kroki ułatwiają rozwiązanie tego problemu.

  1. Sprawdź, czy pole Kategoria stanu znajduje się w widoku Analytics. To pole jest uwzględniane we wszystkich domyślnych widokach udostępnionych.

  2. Wybierz tabelę danych, a następnie na karcie Narzędzia tabel sekcja Obliczenia na wstążce wybierz pozycję Nowa kolumna.

    Zrzut ekranu przedstawiający zakładkę Narzędzia tabel w Power BI, Nowa kolumna.

  3. Zastąp tekst domyślny poniższym kodem, a następnie wybierz znacznik wyboru.

    State Sort Order =  
    SWITCH (  
        'View Name'[State Category],  
        "Proposed", 1,  
        "InProgress", 2,  
        "Resolved", 3,  
        4  
    )  
    

    Zobacz poniższy przykład:

    Zrzut ekranu przedstawiający kartę Narzędzia tabel usługi Power BI, wpis kategorii stanu.

    Uwaga

    Może być konieczne skorygowanie definicji, jeśli potrzebujesz większej szczegółowości niż zapewnia kategoria stanu. Kategoria State zapewnia poprawne sortowanie we wszystkich typach elementów roboczych, niezależnie od dostosowań Stanu.

  4. Otwórz widok Dane i wybierz kolumnę State (Stan).

  5. Na karcie Narzędzia kolumn wybierz pozycję Sortuj według kolumny, a następnie wybierz pole Kolejność sortowania stanu.

    Zrzut ekranu przedstawiający kartę Narzędzia Kolumn w Power BI, z opcją Sortuj według kolumny.

Dodaj datę poprzednią

Następny krok obliczania czasu w stanie wymaga mapowania poprzedniego interwału (dzień, tydzień, miesiąc) dla każdego wiersza danych w zestawie danych. Jest to proste obliczenie przy użyciu kolumny obliczeniowej. Zazwyczaj należy zdefiniować tę kolumnę, jak pokazano.

Date Previous  = 
PREVIOUSDAY ( 'View Name'[Date] )

Jednak takie podejście ma dwa główne problemy:

  • Działa tylko w okresach dziennych.
  • Nie obsługuje luk w danych. Jeśli na przykład element roboczy jest przenoszony między projektami.

Aby rozwiązać te problemy, kolumna obliczeniowa powinna znaleźć poprzedni dzień, przeskanując pole Data .

Aby dodać obliczeniową kolumnę Date Previous (Data poprzednia), na karcie Narzędzia tabel wybierz pozycję Nowa kolumna, a następnie zastąp tekst domyślny następującym kodem i zaznacz znacznik wyboru.

Date Previous =
CALCULATE (
    MAX ( 'View Name'[Date] ),
        ALLEXCEPT ( 'View Name', 'View Name'[Work Item Id] ),
        'View Name'[Date] < EARLIER ( 'View Name'[Date] )
)

Kolumna obliczeniowa Date Previous (Data poprzednia ) używa trzech funkcji języka DAX, MAX, ALLEXCEPTi EARLIER, opisanych bardziej szczegółowo w dalszej części tego artykułu. Ponieważ kolumna jest obliczana, jest uruchamiana dla każdego wiersza w tabeli i za każdym razem, gdy jest uruchamiana, ma kontekst tego konkretnego wiersza.

Zrzut ekranu przedstawiający tabelę wykresu usługi Power BI i zakładkę Wizualizacje dla daty i poprzedniej daty.

Napiwek

W menu kontekstowym dla pól Date i Previous Date wybierz pozycję Date (zamiast Date Hierarchy), aby wyświetlić jedną datę dla tych pól.

Dodaj różnicę dat w dniach

Date Previous oblicza różnicę między poprzednią i bieżącą datą dla każdego wiersza. W przypadku różnic daty w dniach obliczamy liczbę dni między poszczególnymi okresami. W przypadku większości wierszy w migawce dziennej wartość jest równa 1. Jednak w przypadku wielu elementów roboczych, które mają luki w zestawie danych, wartość jest większa niż 1.

Ważne

Wymaga dodania kolumny obliczeniowej Date Previous do tabeli.

Ważne jest, aby wziąć pod uwagę pierwszy dzień zestawu danych, w którym pole Date Previous jest puste. W tym przykładzie udostępniamy wierszowi standardową wartość 1, aby zachować spójność obliczeń.

Na karcie Modelowanie wybierz pozycję Nowa kolumna , a następnie zastąp tekst domyślny poniższym kodem i wybierz znacznik wyboru.

Date Diff in Days =
IF (
    ISBLANK ( 'View Name'[Date Previous] ),
    1,
    DATEDIFF (
        'View Name'[Date Previous],
        'View Name'[Date],
        DAY
    )
)

Ta kolumna obliczeniowa używa funkcji DAX ISBLANK i DATEDIFF, które zostały opisane w dalszej części tego artykułu.

Dodaj oznaczenie ostatniego dnia w stanie

W następnym kroku obliczamy, czy dany wiersz reprezentuje ostatni dzień, w którym określony element roboczy znajdował się w stanie. Obsługuje ona domyślne agregacje w usłudze Power BI dodawane w następnej sekcji, w której dodamy kolumnę State Time in Days (Czas stanu w dniach ).

Na karcie Modelowanie wybierz pozycję Nowa kolumna , a następnie zastąp tekst domyślny poniższym kodem i wybierz znacznik wyboru.

Is Last Day in State = 
ISBLANK (CALCULATE (
    COUNTROWS ( 'View Name' ),
        ALLEXCEPT ( 'View Name', 'View Name'[Work Item Id] ),
        'View Name'[Date] > EARLIER ( 'View Name'[Date] ),
        'View Name'[State] = EARLIER ( 'View Name'[State] )
))

Dodaj czas stanu w dniach

Czas spędzony w określonym stanie elementu roboczego można teraz obliczyć, sumując różnice dat w dniach dla każdego elementu roboczego. To obliczenie obejmuje cały czas spędzony w określonym stanie, nawet jeśli przełączył się między stanami wiele razy. Istnieje możliwość oceny każdego wiersza jako trendu przy użyciu daty lub najnowszych informacji przy użyciu funkcji Is Last Day In State.

Ważne

Wymaga, abyś dodał do tabeli obliczone kolumny Date Diff in Days oraz Is Last Day in State.

Na karcie Modelowanie wybierz pozycję Nowa kolumna , a następnie zastąp tekst domyślny poniższym kodem i wybierz znacznik wyboru.

State Time in Days = 
CALCULATE (
    SUM ( 'View Name'[Date Diff in Days] ),
    ALLEXCEPT ( 'View Name', 'View Name'[Work Item Id] ),
    'View Name'[Date] <= EARLIER ( 'View Name'[Date] ),
    'View Name'[State] = EARLIER ( 'View Name'[State] )
) + 0

Tworzenie skumulowanych wykresów słupkowych trendów na podstawie czasu trwania stanu w dniach

Aby zademonstrować kolumnę State Time in Days (Czas stanu w dniach ), tworzone są następujące skumulowane wykresy kolumnowe. Pierwszy wykres przedstawia liczbę elementów roboczych w poszczególnych stanach w czasie.

Zrzut ekranu przedstawiający skumulowany wykres słupkowy w usłudze Power BI oraz zakładkę Wizualizacja, które ilustrują liczbę nazw elementów roboczych według daty i stanu.

Drugi wykres ilustruje trend średnich dni, w których aktywne elementy robocze są w określonym stanie.

Zrzut ekranu przedstawiający skumulowany wykres kolumnowy usługi Power BI i kartę Wizualizacja, która przedstawia średnią liczbę dni w stanie elementów roboczych według daty.

Dodaj czas przebywania w stanie w dniach – najnowszy (czy jest to ostatni dzień w stanie)

Podczas oceny czasu w stanie dla każdego elementu roboczego w tabeli lub, w przypadku filtrowania według pola takiego jak Ścieżka obszaru, nie używaj kolumny Czas stanu w dniach w agregacji. Agregacja używa wartości dla każdego dnia, w którym element roboczy znajdował się w stanie. Jeśli na przykład element roboczy był w toku w poniedziałek i przeniesiony do Ukończono w czwartek, czas w tym stanie wynosi trzy dni, ale suma w kolumnie Czas w stanie w dniach wynosi sześć dni, 1+2+3, co jest niepoprawne.

Dodaj czas stanu w dniach — najnowsze.

Aby rozwiązać ten problem, użyj State Time in Days (Czas stanu w dniach) i zastosuj filtr, gdzie Is Last Day In State jest równe "True". Eliminuje wszystkie dane historyczne niezbędne do trendu i koncentruje się zamiast tego tylko na najnowszej wartości dla każdego stanu.

Użyj wartości State Time in Days (Czas trwania stanu w dniach) i zastosuj filtr Is Last Day In State równa się 'True'.

Dodawanie czasu stanu w dniach — w toku

W poprzednich przykładach czas stanu w dniach dla danego elementu roboczego jest lizony tylko wtedy, gdy element roboczy był w tym określonym stanie. Jeśli twoim celem jest, aby czas w stanie dla danego elementu roboczego był liczony do średniej w sposób ciągły, musisz zmienić obliczenia. Na przykład, jeśli chcemy śledzić stan "W toku", dodajemy obliczeniową kolumnę Czas stanu w dniach - W toku.

Na karcie Modelowanie wybierz pozycję Nowa kolumna , a następnie zastąp tekst domyślny poniższym kodem i wybierz znacznik wyboru.

State Time in Days - In Progress = 
CALCULATE (
    SUM ( 'View Name'[Date Diff in Days] ),
    ALLEXCEPT ( 'View Name', 'View Name'[Work Item Id] ),
   'View Name'[Date] <= EARLIER('View Name'[Date]),
   'View Name'[State] = "In Progress"
) + 0

Uwaga

Może być konieczne skorygowanie definicji na podstawie stanów przepływu pracy używanych przez projekt. Na przykład projekt używany w przykładach w tym artykule używa stanu przepływu pracy "W toku", jednak procesy Agile, Scrum i CMMI zwykle używają stanów "Aktywne" lub "Zatwierdzone" do reprezentowania pracy w toku. Aby uzyskać omówienie, zobacz Stany przepływu pracy i kategorie stanów.

Na poniższej ilustracji przedstawiono wpływ uwzględnienia całego czasu w stanie dla każdego istniejącego elementu roboczego (pokazanego po lewej stronie) w porównaniu z elementami roboczymi w określonym stanie w danym dniu (pokazano po prawej stronie).

Porównanie trendów średniego czasu w stanie

Trend czasu trwania stanu w dniach dla wielu stanów

Analizowanie wydajności w wielu stanach jest również możliwe przy użyciu wzorca "Ciągłe". Jednak takie podejście działa tylko z wykresem trendu.

Na karcie Modelowanie wybierz pozycję Nowa kolumna , a następnie zastąp tekst domyślny poniższym kodem i wybierz znacznik wyboru.

State Time in Days - Working States = 
CALCULATE (
    SUM ( 'View Name'[Date Diff in Days] ),
    ALLEXCEPT ( 'View Name', 'View Name'[Work Item Id] ),
   'View Name'[Date] <= EARLIER('View Name'[Date]),
   'View Name'[State] IN { "Committed", "In Progress" }
) + 0

Uwaga

Może być konieczne skorygowanie definicji na podstawie stanów przepływu pracy używanych przez projekt. Jeśli na przykład projekt używa elementu "Aktywny" zamiast "Zatwierdzone" lub "Proponowane".

Wykres po lewej stronie przedstawia łączną średnią, natomiast po prawej stronie przedstawiono poszczególne stany.

Porównanie trendów dla wielu stanów

Pobierz czas trwania stanu w dniach dla wielu stanów - najnowsze

Używa się kolumny obliczeniowej Czas stanu w dniach — najnowszy podczas tworzenia trendu. Dzięki filtrowi stanów, kolumna State Time in Days (Czas stanu w dniach) i Is Last Day in State (Czy to ostatni dzień w stanie) zapewniają prosty sposób na uzyskanie całkowitego czasu, jaki dowolny element roboczy lub grupa elementów roboczych spędziła w zbiorze stanów.

Aktualny czas w Stanach

Dodaj stan poprzedni

Kolumna obliczeniowa Date Previous (Data poprzednia ) może również służyć do wyszukiwania poprzednich wartości, takich jak poprzedni stan dla każdego elementu roboczego.

Ważne

Wymaga dodania kolumny obliczeniowej Date Previous do tabeli.

Na karcie Modelowanie wybierz pozycję Nowa kolumna , a następnie zastąp tekst domyślny poniższym kodem i wybierz znacznik wyboru.

State Previous =
LOOKUPVALUE (
    'View Name'[State],
    'View Name'[Work Item Id], 'View Name'[Work Item Id],
    'View Name'[Date], 'View Name'[Date Previous]
)

Ta kolumna obliczeniowa używa elementu , opisanego LOOKUPVALUEw dalszej części tego artykułu.

Pierwszy parametr LOOKUPVALUE, 'View Name'[State] określa, aby zwrócić wartość [State].

Następny parametr, 'View Name'[Work Item Id], 'View Name'[Work Item Id], określa, że należy wziąć pod uwagę tylko wiersze z pasującym identyfikatorem elementu roboczego jak bieżący wiersz.

I ostatni parametr, 'View Name'[Date], 'View Name'[Date Previous], określa, że data zwracanego wiersza musi mieć wartość [Date] zgodną z [Poprzednią datą] bieżącego wiersza. W migawce tylko jeden wiersz może spełniać te kryteria.

Dodawanie stanu zmienionego

Za pomocą kolumny State Previous (Poprzedni stan) możemy oznaczyć wiersze dla każdego elementu roboczego, w którym wystąpiło przejście stanu. Kolumna obliczeniowa Zmieniono etap ma dwa specjalne aspekty do rozważenia.

  • Puste wartości *State Previous, które ustawiliśmy na Datę utworzenia elementu roboczego
  • Tworzenie elementu roboczego jest uznawane za przejście stanu

Ważne

Wymaga dodania kolumny obliczeniowej State Previous do tabeli.

Na karcie Modelowanie wybierz pozycję Nowa kolumna , a następnie zastąp tekst domyślny poniższym kodem i wybierz znacznik wyboru.

State Changed =
IF (
    ISBLANK ( 'View Name'[State Previous] ),
    'View Name'[Created Date].[Date] = 'View Name'[Date],
    'View Name'[State Previous] <> 'View Name'[State]
)

Kolumna obliczeniowa zawiera wartość logiczną, która określa, czy wiersz jest przejściem stanowym. Używając Not Equal To operatora, poprawnie przechwytujesz wiersze, w których poprzedni stan nie jest zgodny z bieżącym stanem, co oznacza, że porównanie zwraca wartość True zgodnie z oczekiwaniami.

Dodaj przepływ stanu

W kolumnach obliczeniowych State Previous (Poprzedni stan) i State Changed (Zmieniono stan) można utworzyć kolumnę, która objaśnia przepływ stanu dla danego elementu roboczego. Tworzenie tej kolumny jest opcjonalne na potrzeby tego artykułu.

Ważne

Wymaga, aby do tabeli zostały dodane kolumny obliczeniowe Poprzedni stan i Zmieniono stan.

Na karcie Modelowanie wybierz pozycję Nowa kolumna , a następnie zastąp tekst domyślny poniższym kodem i wybierz znacznik wyboru.

State Flow = 
IF([State Changed], [State Previous], [State]) & " => " & [State]

Dodaj licznik zmian stanu

W miarę przechodzenia do bardziej skomplikowanych miar musimy mieć reprezentację całkowitej liczby zmian stanu w celu porównania wierszy danych dla danego elementu roboczego. Otrzymujemy reprezentację przez dodanie kolumny obliczeniowej Liczba zmian stanu.

Ważne

Wymaga, aby kolumna obliczeniowa State Changed została dodana do tabeli.

Na karcie Modelowanie wybierz pozycję Nowa kolumna , a następnie zastąp tekst domyślny poniższym kodem i wybierz znacznik wyboru.

State Change Count = 
CALCULATE (
    COUNTROWS ( 'View Name' ),
    ALLEXCEPT ( 'View Name', 'View Name'[Work Item Id] ),
    'View Name'[Date] <= EARLIER ( 'View Name'[Date] ),
    'View Name'[State Changed]
) + 0

Dodawanie liczby zmian stanu — czas ostatniego proponowanego i ponownego uruchomienia stanu w dniach

Czas ponownego uruchomienia stanu w dniach to dość złożone obliczenie. Pierwszym krokiem jest znalezienie ostatniego momentu, w jakim element roboczy był w proponowanym stanie. Dodaj kolumnę obliczeniową State Change Count — Ostatnio proponowane.

Uwaga

Może być konieczne skorygowanie poniższych definicji na podstawie stanów przepływu pracy używanych przez projekt. Jeśli na przykład projekt używa terminu "Nowy" zamiast "Proponowany".

Na karcie Modelowanie wybierz pozycję Nowa kolumna, a następnie zastąp tekst domyślny następującym kodem i wybierz znacznik wyboru.

State Change Count - Last Proposed = 
CALCULATE (
    MAX ( 'View Name'[State Change Count] ),
    ALLEXCEPT ( 'View Name', 'View Name'[Work Item Id] ),
    'View Name'[Date] <= EARLIER ( 'View Name'[Date] ),
    'View Name'[State] = "Proposed"
)

Następnie wróć do przeszłości i sprawdź, czy były jakieś aktywne stany przed tym proponowanym stanem. Na koniec zsumuj wszystkie dni, w których element roboczy był w stanie aktywnym przed ostatnią propozycją.

Na karcie Modelowanie wybierz pozycję Nowa kolumna , a następnie zastąp tekst domyślny poniższym kodem i wybierz znacznik wyboru.

State Restart Time in Days = 
CALCULATE (
    SUM ( 'View Name'[Date Diff in Days] ),
    ALLEXCEPT ( 'View Name', 'View Name'[Work Item Id] ),
    'View Name'[Date] <= EARLIER ( 'View Name'[Date] ),
    'View Name'[State Change Count] < EARLIER('View Name'[State Change Count - Last Proposed] ),
    'View Name'[State] <"Proposed"
) + 0

Ponieważ Czas ponownego uruchomienia stanu w dniach jest aktualizowany dla każdego wiersza danych, możesz utworzyć trend w celu oceny przeróbki w ramach określonych sprintów lub zbadać przeróbki poszczególnych elementów roboczych przy użyciu funkcji "Is Current".

Dodaj czas na poprawki stanu w dniach

Podobnie jak Czas ponownego uruchomienia stanu w dniach, Czas ponownego wykonania stanu w dniach rejestruje pierwszy raz, kiedy element roboczy znalazł się w kategorii stanu "Ukończony". Po tym czasie każdego dnia, kiedy element roboczy znajduje się w stanie innym niż Ukończono, jest liczony jako przeróbka.

  1. Utwórz kolumnę "State Change Count - First Completed" (Liczba zmian stanu — pierwsze ukończone). Ta kolumna śledzi liczbę przejść elementu roboczego do stanu Ukończono z dowolnego innego stanu.

    State Change Count - First Completed =
    VAR CompletedState = "Completed"
    RETURN
    CALCULATE(
       COUNTROWS('YourTable'),
       FILTER(
           'YourTable',
           'YourTable'[State] = CompletedState
           && 'YourTable'[State Change Date] = MIN('YourTable'[State Change Date])
       )
    )
    
  2. Na karcie Modelowanie wybierz pozycję Nowa kolumna , a następnie zastąp tekst domyślny poniższym kodem i wybierz znacznik wyboru.

    State Rework Time in Days = 
    IF (
        ISBLANK ( 'View Name'[State Change Count - First Completed] ),
        0,
        CALCULATE (
            SUM ( 'View Name'[Date Diff in Days] ),
            ALLEXCEPT ( 'View Name', 'View Name'[Work Item Id] ),
            'View Name'[Date] <= EARLIER ( 'View Name'[Date] ),
            'View Name'[State Change Count] <= EARLIER ( 'View Name'[State Change Count - First Completed] ),
            'View Name'[State] IN {"Completed", "Closed", "Cut" } = FALSE()
        ) + 0
    )
    

    Uwaga

    Może być konieczne skorygowanie poprzedniej definicji na podstawie stanów przepływu pracy używanych przez projekt. Jeśli na przykład projekt używa Gotowe zamiast Zamknięte, i tak dalej.

Funkcje DAX

Dodatkowe informacje znajdują się w tej sekcji dla funkcji języka DAX używanych do tworzenia kolumn obliczeniowych i miar dodanych w tym artykule. Zobacz też DAX, funkcje inteligencji czasowej.

Funkcja opis
ALLEXCEPT Usuwa wszystkie filtry kontekstowe w tabeli z wyjątkiem filtrów zastosowanych do określonych kolumn. ALLEXCEPT ('View Name'', 'View Name'[Work Item Id]) Zasadniczo zmniejsza liczbę wierszy w tabeli tylko do tych, które mają ten sam identyfikator elementu roboczego co bieżący wiersz.
CALCULATE Ta funkcja jest podstawą prawie wszystkich przykładów. Podstawowa struktura to wyrażenie, po którym następuje seria filtrów zastosowanych do wyrażenia.
COUNTROWS Ta funkcja , COUNTROWS ( 'View Name' )po prostu zlicza liczbę wierszy, które pozostają po zastosowaniu filtrów.
DATEDIFF Zwraca liczbę granic interwału przekraczanych między dwiema datami. DATEDIFF odejmuje datę poprzednią od daty , aby określić liczbę dni między nimi.
EARLIER Zwraca bieżącą wartość określonej kolumny w zewnętrznym etapie oceny tej kolumny. Na przykład 'View Name'[Date] < EARLIER ( 'View Name'[Date] ) dodatkowo zmniejsza zestaw danych tylko do tych wierszy, które wystąpiły przed datą bieżącego wiersza, do którego odwołuje się funkcja EARLIER . EARLIER nie odnosi się do poprzednich dat; w szczególności definiuje kontekst wiersza kolumny obliczeniowej.
ISBLANK Sprawdza, czy wartość jest pusta, i zwraca wartość TRUE lub FALSE. ISBLANK ocenia bieżący wiersz, aby określić, czy Date Previous ma wartość. Jeśli tak nie jest, instrukcja If ustawia różnice daty w dniach na 1.
LASTDATE Stosujemy LASTDATE filtr do wyrażenia, na przykład LASTDATE ( 'View Name'[Date] ), aby znaleźć najnowszą datę we wszystkich wierszach w tabeli i wyeliminować wiersze, które nie mają tej samej daty. Dzięki tabeli migawki wygenerowanej przez widok Analytics, ten filtr skutecznie wybiera ostatni dzień wybranego okresu.
LOOKUPVALUE Zwraca wartość w result_columnName dla wiersza spełniającego wszystkie kryteria określone przez search_columnName i search_value.
MAX Zwraca największą wartość liczbową w kolumnie lub między dwoma wyrażeniami skalarnym. Stosujemy metodę MAX ( 'View Name'[Date] ), aby określić najnowszą datę po zastosowaniu wszystkich filtrów.