Přidání míry stavu v čase do sestavy Power BI

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Doba, po kterou pracovní položka stráví v určitém stavu pracovního postupu nebo řadě stavů, je důležitým aspektem pro pochopení efektivity. Widgety Cycle Time a Lead Time Analytics poskytují určité míry stavu v čase. Tyto widgety ale nemusí mít požadovanou úroveň podrobností.

Tento článek obsahuje recepty využívající jazyk DAX (Data Analysis Expressions) k vyhodnocení času stráveného pracovními položkami v kombinaci stavů. Konkrétně se dozvíte, jak do sestav Power BI přidat následující míry a počítané sloupce a jak je použít k vygenerování různých grafů trendů. Všechna pole jsou počítaná sloupce s výjimkou prvních polí uvedených.

Počet Popis
Počet pracovních položek (míra) Vypočítá počet jedinečných pracovních položek na základě položky posledního dne pro pracovní položku.
Pořadí řazení stavu Přidá sloupec, který se použije k řazení stavů pracovního postupu na základě sekvence Kategorie státu.
Datum předchozí Přidá sloupec, který vypočítá předchozí datum na základě sloupce Datum .
Rozdíl data ve dnech Přidá sloupec, který vypočítá počet dní mezi sloupci Datum a Datum předchozí.
Is Last Day in State Přidá sloupec, který určuje, jestli hodnota Date je poslední den, kdy byla pracovní položka ve stavu.
Čas stavu ve dnech Přidá sloupec, který vypočítá počet dnů strávených pracovní položkou v jednotlivých stavech.
Předchozí stav Přidá sloupec, který identifikuje předchozí stav pro každý řádek v tabulce dat.
Změna stavu Přidá sloupec určující datum přechodu pracovní položky z jednoho státu do jiného.
Stavový tok Přidá sloupec, který znázorňuje tok stavu jako přechod pracovní položky z jednoho stavu do druhého.
Počet změn stavu Přidá sloupec, který vypočítá počet přechodů pracovní položky z jednoho státu do druhého.
Počet změn stavu – první dokončeno Přidá sloupec, který určuje počet přechodů pracovní položky do stavu Dokončeno poprvé. Jinými slovy, když se přesune z jakéhokoli jiného stavu do stavu Dokončeno.
Počet změn stavu – naposledy navržený Přidá sloupec, který určuje, jestli byla pracovní položka v navrhovaném stavu dříve po přechodu na pozdější stav.
Čas restartování stavu ve dnech Přidá sloupec, který vypočítá dny strávené pracovní položkou ve stavu restartování.
Čas přepracování stavu ve dnech Přidá sloupec, který vypočítá dny strávené pracovní položkou v jiném stavu než Dokončeno.

Důležité

  • Při přidávání počítaného sloupce nebo míry podle příkladů uvedených v tomto článku nahraďte název zobrazení názvem tabulky pro zobrazení Analytics nebo tabulku dat. Například nahraďte Název zobrazení aktivními chybami.
    Snímek obrazovky s kartou Nástroje tabulky Power BI a názvem tabulky dat
  • Analýza nepodporuje revize v rámci dne. Tyto příklady mají nejvyšší přesnost při použití denního intervalu při odkazování na zobrazení Analýzy.
  • Výpočty ignorují všechny revize v rámci dne nebo uvnitř období (týdně/měsíčně). To může vést k neočekávaným výsledkům pro konkrétní scénáře, jako je pracovní položka, která nezobrazuje čas Probíhající, když je pracovní položka probíhající po dobu kratší než den.
  • Výchozí agregace Power BI se používají, kdykoli je to možné, místo vytváření měr.
  • Některé výpočty zahrnují +0 , aby se zajistilo, že je číselná hodnota zahrnutá pro každý řádek místo prázdné hodnoty. Možná budete muset upravit některé definice počítaných sloupců na základě stavů pracovního postupu, které váš projekt používá. Pokud váš projekt například místo navrhovaného, probíhajícího a dokončeného používá nový, aktivní a uzavřený.

Požadavky

  • Pokud chcete zobrazit data Analýzy a dotazovat se na službu, musíte být členem projektu se základním přístupem nebo novějším. Ve výchozím nastavení mají všichni členové projektu udělená oprávnění k dotazování analýzy a definování zobrazení Analýzy.
  • Další informace o dalších požadavcích týkajících se povolení služeb a funkcí a obecných aktivit sledování dat najdete v tématu Oprávnění a požadavky pro přístup k Analýzám.

Poznámka:

Pokud chcete provádět všechny míry stavu popsané v tomto článku, nezapomeňte do zobrazení Analytics, Power Query nebo OData zahrnout následující pole: Kromě výchozích polí: Cesta k oblasti, Přiřazená cesta, Iterace, Stav, Název, ID pracovní položky a Typ pracovní položky.

Zvažte také použití zobrazení Analytics na základě denní členitosti. Příklady v tomto článku jsou založeny na zobrazení Analýza aktivních chyb definovaných v článku Vytvoření aktivní sestavy chyb v Power BI na základě vlastního zobrazení Analýzy s výjimkou, že je vybráno 60 dnů historie a denní členitosti. Určete také, jestli chcete zkontrolovat dokončené nebo uzavřené pracovní položky.

Přidání míry Počtu pracovních položek

Abychom zjednodušili rychlé generování sestav, navrhli jsme zobrazení Analytics tak, aby fungovala s výchozími agregacemi v Power BI. Abychom ukázali rozdíl mezi výchozí agregací a mírou, začneme jednoduchou mírou počtu pracovních položek.

  1. Načtěte zobrazení Analýzy do Power BI Desktopu. Podrobnosti najdete v tématu Připojení s Připojení dat Power BI, Připojení do zobrazení Analýzy.

  2. Vyberte tabulku dat a potom na kartě Nástroje tabulky v části Výpočty na pásu karet zvolte Nová míra.

    Snímek obrazovky s kartou Nástroje tabulky Power BI a novou mírou

  3. Nahraďte výchozí text následujícím kódem a pak zaškrtněte políčko.

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

    Míra Počet pracovních položek používá CALCULATEfunkce , COUNTROWSa LASTDATE DAX, které jsou podrobněji popsány dále v tomto článku.

    Poznámka:

    Nezapomeňte nahradit název zobrazení názvem tabulky pro zobrazení Analýza. Tady například nahradíme název zobrazení aktivními chybami.

    Snímek obrazovky s kartou Nástroje míry Power BI, syntaxí počtu pracovních položek

Jak se míra liší od počítaného sloupce

Míra vždy vyhodnotí celou tabulku, kde je počítaný sloupec specifický pro jeden řádek. Další informace najdete v tématu Počítané sloupce a míry v jazyce DAX.

Porovnejte míru Počet pracovních položek s výchozí agregací počtu na základě ID pracovní položky. Následující obrázek se vytvoří přidáním vizuálu Karta a míry Počet pracovních položek na první kartu a vlastností ID pracovní položky na druhou kartu.

Snímek obrazovky se stránkou sestavy Power BI, dvěma kartami zobrazující míru počtu pracovních položek a vlastnost ID pracovní položky

Pokud chcete získat správný počet pomocí výchozí agregace, použijete filtr Je aktuální se rovná hodnotě True. Tento model použití filtrů na výchozí agregaci je základem mnoha příkladů uvedených v tomto článku.

Snímek obrazovky se stránkou sestavy Power BI a filtrovaným počtem ID pracovní položky

Přidat pořadí řazení stavu

Power BI ve výchozím nastavení zobrazuje stavy seřazené abecedně ve vizualizaci. Může být zavádějící, když chcete vizualizovat čas ve stavu a Navrhované se zobrazí po probíhajícím stavu. Následující kroky vám pomůžou tento problém vyřešit.

  1. Ověřte, že je pole Kategorie státu zahrnuté v zobrazení Analýza. Toto pole je součástí všech výchozích sdílených zobrazení.

  2. Vyberte tabulku dat a potom na kartě Nástroje tabulky v části Výpočty na pásu karet zvolte Nový sloupec.

    Snímek obrazovky s kartou Nástroje tabulky Power BI a novým sloupcem

  3. Nahraďte výchozí text následujícím kódem a pak zaškrtněte políčko.

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

    Prohlédněte si následující příklad:

    Snímek obrazovky s kartou Nástroje tabulky Power BI a položkou kategorie stavu

    Poznámka:

    Pokud potřebujete větší členitost než kategorie států, budete možná muset definici upravit. Kategorie stavu poskytuje správné řazení napříč všemi typy pracovních položek bez ohledu na přizpůsobení stavu .

  4. Otevřete zobrazení Data a vyberte sloupec Stát.

  5. Na kartě Nástroje sloupce zvolte Seřadit podle sloupce a pak vyberte pole Pořadí řazení stavu.

    Snímek obrazovky s kartou Nástroje sloupce Power BI a výběrem sloupce Seřadit podle

Přidat datum předchozího

Další krok pro výpočet času ve stavu vyžaduje mapování předchozího intervalu (den, týden, měsíc) pro každý řádek dat v datové sadě. Jedná se o jednoduchý výpočet pomocí počítaného sloupce. Obvykle byste tento sloupec definovali, jak je znázorněno.

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

Tento přístup má ale dva hlavní problémy:

  • Funguje jenom pro denní období.
  • Nezpracuje mezery v datech. Pokud se například pracovní položka přesune mezi projekty.

Pokud chcete tyto problémy vyřešit, počítaný sloupec by měl najít předchozí den vyhledáním pole Datum .

Pokud chcete přidat počítaný sloupec Datum předchozí , na kartě Nástroje tabulky zvolte Nový sloupec a pak nahraďte výchozí text následujícím kódem a zaškrtněte políčko.

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

Počítaný sloupec Datum předchozí používá tři funkce JAZYKA DAX, MAXALLEXCEPTa EARLIER, které jsou podrobněji popsány dále v tomto článku. Vzhledem k tomu, že se sloupec počítá, spouští se pro každý řádek v tabulce a pokaždé, když se spustí, má kontext daného řádku.

Snímek obrazovky s tabulkovým grafem Power BI a kartou Vizualizace pro datum a předchozí datum

Tip

V místní nabídce polí Datum a Předchozí datum zvolte Datum (místo hierarchie kalendářních dat) a zobrazte pro tato pole jedno datum.

Přidání rozdílu data ve dnech

Date Previous vypočítá rozdíl mezi předchozím a aktuálním datem pro každý řádek. Pomocí rozdílu data ve dnech vypočítáme počet dní mezi jednotlivými obdobími. U většiny řádků v denním snímku se hodnota rovná 1. U mnoha pracovních položek, které mají mezery v datové sadě, je však hodnota větší než 1.

Důležité

Vyžaduje, abyste do tabulky přidali počítaný sloupec Datum předchozí .

Je důležité vzít v úvahu první den datové sady, ve kterém je datum předchozí prázdné. V tomto příkladu dáme tomuto řádku standardní hodnotu 1, aby byl výpočet konzistentní.

Na kartě Modelování zvolte Nový sloupec a pak nahraďte výchozí text následujícím kódem a zaškrtněte políčko.

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

Tento počítaný sloupec používá funkce jazyka ISBLANKDATEDIFF DAX popsané dále v tomto článku.

Přidat je poslední den ve stavu

V tomto dalším kroku vypočítáme, jestli daný řádek představuje poslední den, kdy byla konkrétní pracovní položka ve stavu. Podporuje výchozí agregace v Power BI, které přidáme do další části, kde přidáme sloupec Čas stavu ve dnech .

Na kartě Modelování zvolte Nový sloupec a pak nahraďte výchozí text následujícím kódem a zaškrtněte políčko.

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] )
))

Přidání času stavu ve dnech

Čas, který pracovní položka strávila v určitém stavu, se teď dá vypočítat součtem rozdílu data ve dnech pro každou pracovní položku. Tento výpočet zahrnuje veškerý čas strávený v určitém stavu, i když se mezi stavy několikrát přepnul. Každý řádek je možné vyhodnotit jako trend pomocí data nebo nejnovějších informací pomocí funkce Je poslední den ve stavu.

Důležité

Vyžaduje, abyste do tabulky přidali počítané sloupce Date Diff ve dnech a Je poslední den ve stavu .

Na kartě Modelování zvolte Nový sloupec a pak nahraďte výchozí text následujícím kódem a zaškrtněte políčko.

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

Vytváření skládaných sloupcových grafů trendů na základě času stavu ve dnech

Pro předvedení sloupce Čas stavu ve dnech se vytvoří následující skládané sloupcové grafy. První graf zobrazuje počet pracovních položek v jednotlivých stavech v průběhu času.

Snímek obrazovky skládaného sloupcového grafu Power BI a karty Vizualizace znázorňující počet názvu pracovní položky podle data a stavu

Druhý graf znázorňuje trend průměrných dnů, ve které jsou aktivní pracovní položky v určitém stavu.

Snímek obrazovky skládaného sloupcového grafu Power BI a karty Vizualizace znázorňující průměrné dny ve stavu pracovních položek podle data

Přidání času stavu ve dnech – poslední (je poslední den ve stavu)

Při vyhodnocování stavu času pro každou pracovní položku v tabulce nebo při filtrování podle pole, jako je například Cesta k oblasti, nepoužívejte sloupec Čas stavu ve dnech v agregaci. Agregace používá hodnotu pro každý den, kdy byla pracovní položka ve stavu. Pokud například pracovní položka probíhala v pondělí a byla přesunuta do pole Dokončeno ve čtvrtek, je čas ve stavu tři dny, ale součet času státu ve sloupci Dny je šest dní, 1+2+3což je nesprávné.

Přidat čas stavu ve dnech – nejpozději.

Pokud chcete tento problém vyřešit, použijte čas stavu ve dnech a použijte filtr Je poslední den ve stavu se rovná true. Eliminuje všechna historická data potřebná pro trend a zaměřuje se místo toho na nejnovější hodnotu pro každý stav.

Použijte stavový čas ve dnech a použijte filtr Je poslední den ve stavu se rovná hodnotě True.

Přidání času stavu ve dnech – Probíhá

V předchozích příkladech je čas stavu ve dnech pro danou pracovní položku počítána pouze tehdy, když byla pracovní položka v daném konkrétním stavu. Pokud je vaším cílem mít časový stav pro danou pracovní položku počítání do průměru nepřetržitě, musíte změnit výpočet. Pokud například chceme sledovat stav Probíhá, přidáme čas stavu ve dnech – probíhající počítaný sloupec.

Na kartě Modelování zvolte Nový sloupec a pak nahraďte výchozí text následujícím kódem a zaškrtněte políčko.

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

Poznámka:

Je možné, že budete muset upravit definici na základě stavů pracovního postupu používaných vaším projektem. Například projekt použitý v příkladech v tomto článku používá stav pracovního postupu Probíhá, ale procesy Agile, Scrum a CMMI obvykle používají stavy Aktivní nebo Potvrzené, které představují probíhající práci. Přehled najdete v tématu Stavy pracovního postupu a kategorie stavů.

Na následujícím obrázku je vidět účinek zvážení všech časových stavů pro každou existující pracovní položku (zobrazenou vlevo) a pouze těch pracovních položek v určitém stavu v daném dni (zobrazené vpravo).

Porovnání trendu průměrného času ve stavu

Čas stavu ve dnech – trend více stavů

Analýza výkonu napříč několika stavy je také možná pomocí vzoru Průběžný. Tento přístup ale funguje jenom s grafem trendu.

Na kartě Modelování zvolte Nový sloupec a pak nahraďte výchozí text následujícím kódem a zaškrtněte políčko.

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

Poznámka:

Je možné, že budete muset upravit definici na základě stavů pracovního postupu používaných vaším projektem. Pokud například váš projekt používá aktivní místo potvrzeného nebo navrhovaného projektu.

Graf vlevo zobrazuje kombinovaný průměr, zatímco pravá strana zobrazuje jednotlivé stavy.

Porovnání trendů více stavů

Získání času stavu ve dnech – Nejnovější pro více stavů

Při vytváření trendu použijete sloupec State Time in Days- Latest počítaný sloupec. Pomocí filtru stavů poskytuje sloupec Čas státu ve dnech a Je poslední den ve stavu jednoduchý způsob, jak získat celkový čas libovolné pracovní položky nebo skupiny pracovních položek strávených v sadě stavů.

Poslední čas ve státech

Přidat předchozí stav

Počítaný sloupec Datum předchozí lze použít také k vyhledání minulých hodnot, například předchozího stavu pro každou pracovní položku.

Důležité

Vyžaduje, abyste do tabulky přidali počítaný sloupec Datum předchozí.

Na kartě Modelování zvolte Nový sloupec a pak nahraďte výchozí text následujícím kódem a zaškrtněte políčko.

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

Tento počítaný sloupec používá LOOKUPVALUEpopis popsaný dále v tomto článku.

První LOOKUPVALUE parametr , 'View Name'[State]určuje, že má vrátit hodnotu [State].

Další parametr , určuje, 'View Name'[Work Item Id], 'View Name'[Work Item Id]že by se měly zvážit pouze řádky s odpovídajícím ID pracovní položky jako aktuální řádek.

A poslední parametr určuje, 'View Name'[Date], 'View Name'[Date Previous]že datum vráceného řádku musí mít hodnotu [Date], která odpovídá [předchozímu datu] aktuálního řádku. Na snímku může tato kritéria splňovat pouze jeden řádek.

Přidání stavu změněno

Pomocí sloupce Předchozí stav můžeme označit řádky pro každou pracovní položku, ve které došlo k přechodu stavu. Počítaný sloupec Změna fáze má dva zvláštní aspekty:

  • Prázdné hodnoty *State Previous, které jsme nastavili na Datum vytvoření pracovní položky
  • Vytvoření pracovní položky se považuje za přechod stavu.

Důležité

Vyžaduje přidání počítaného sloupce State Previous do tabulky.

Na kartě Modelování zvolte Nový sloupec a pak nahraďte výchozí text následujícím kódem a zaškrtněte políčko.

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

Počítaný sloupec je logická hodnota, která identifikuje, jestli je řádek přechodem stavu. Pomocí operátoru Not Equal To správně zachytíte řádky, ve kterých předchozí stav neodpovídá aktuálnímu stavu, což znamená, že porovnání vrátí hodnotu Pravda podle očekávání.

Přidání toku stavu

S počítanými sloupci State Previous a State Changed můžete vytvořit sloupec, který znázorňuje tok stavu pro danou pracovní položku. Vytvoření tohoto sloupce je volitelné pro účely tohoto článku.

Důležité

Vyžaduje, abyste do tabulky přidali počítané sloupce State Previous a State Changed.

Na kartě Modelování zvolte Nový sloupec a pak nahraďte výchozí text následujícím kódem a zaškrtněte políčko.

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

Přidat počet změn stavu

Při přechodu do složitějších měr musíme mít reprezentaci celkového počtu změn stavu, abychom mohli porovnat řádky dat pro danou pracovní položku. Reprezentaci získáme přidáním počítaného sloupce Počet změn stavu.

Důležité

Vyžaduje přidání počítaného sloupce State Changed do tabulky.

Na kartě Modelování zvolte Nový sloupec a pak nahraďte výchozí text následujícím kódem a zaškrtněte políčko.

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

Přidání počtu změn stavu – doba posledního navrhovaného a restartování stavu ve dnech

Čas restartování stavu ve dnech je poměrně složitý výpočet. Prvním krokem je zjištění posledního okamžiku, kdy byla pracovní položka v navrhovaném stavu. Přidejte počet změn stavu – poslední navrhovaný počítaný sloupec.

Poznámka:

Možná budete muset upravit následující definice na základě stavů pracovního postupu, které váš projekt používá. Pokud například váš projekt místo navrhovaného projektu používá "Nový".

Na kartě Modelování zvolte Nový sloupec a pak nahraďte výchozí text následujícím kódem a zaškrtněte políčko.

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"
)

Pak se vraťte k minulosti a podívejte se, jestli před tímto navrhovaným stavem existovaly nějaké aktivní stavy. Nakonec sečtěte všechny dny, kdy byla pracovní položka v aktivním stavu před posledním navrhovaným návrhem.

Na kartě Modelování zvolte Nový sloupec a pak nahraďte výchozí text následujícím kódem a zaškrtněte políčko.

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

Vzhledem k tomu, že se čas restartování stavu ve dnech aktualizuje pro každý řádek dat, můžete buď vytvořit trend vyhodnocení přepracování napříč konkrétními sprinty, nebo můžete prozkoumat přepracování jednotlivých pracovních položek pomocí funkce Je aktuální.

Přidání času přepracování stavu ve dnech

Podobně jako čas restartování stavu ve dnech hledá čas přepracování stavu ve dnech první pracovní položku v kategorii Dokončeno. Po uplynutí této doby se pracovní položka každý den stráví v jiném stavu než Dokončeno, počítá se jako přepracování.

  1. Vytvořte sloupec State Change Count - First Completed (Počet změn stavu – první dokončeno). Tento sloupec sleduje, kolikrát pracovní položka přejde do stavu Dokončeno z jakéhokoli jiného stavu.

    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 kartě Modelování zvolte Nový sloupec a pak nahraďte výchozí text následujícím kódem a zaškrtněte políčko.

    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
    )
    

    Poznámka:

    Možná budete muset výše uvedenou definici upravit na základě stavů pracovního postupu, které váš projekt používá. Pokud například váš projekt používá místo uzavřeno hotovo a tak dále.

funkce jazyka DAX,

Další informace najdete v této části pro funkce DAX používané k vytvoření počítaných sloupců a míry přidané v tomto článku. Viz také DAX, funkce časového měřítka.

Function Popis
ALLEXCEPT Odebere všechny kontextové filtry v tabulce s výjimkou filtrů použitých pro zadané sloupce. ALLEXCEPT ('View Name'', 'View Name'[Work Item Id]) V podstatě zmenšuje řádky v tabulce jenom na řádky, které sdílejí stejné ID pracovní položky jako aktuální řádek.
CALCULATE Tato funkce je základem téměř všech příkladů. Základní struktura je výraz následovaný řadou filtrů, které jsou použity pro výraz.
COUNTROWS Tato funkce COUNTROWS ( 'View Name' )jednoduše spočítá počet řádků, které zůstanou po použití filtrů.
DATEDIFF Vrátí počet hranic intervalů křížených mezi dvěma daty. DATEDIFF odečte datum předchozí od data a určí počet dní mezi nimi.
EARLIER Vrátí aktuální hodnotu zadaného sloupce ve vnějším zkušebním průchodu zmíněného sloupce. 'View Name'[Date] < EARLIER ( 'View Name'[Date] ) Dále například zmenšuje sadu dat pouze na řádky, ke kterým došlo před datem aktuálního řádku, na který odkazuje funkceEARLIER. EARLIER neodkazuje na předchozí data; konkrétně definuje kontext řádku počítaného sloupce.
ISBLANK Zkontroluje, jestli je hodnota prázdná, a vrátí hodnotu PRAVDA nebo NEPRAVDA. ISBLANK vyhodnotí aktuální řádek a určí, jestli má předchozí datum hodnotu. Pokud ne, příkaz If nastaví rozdíl data ve dnech na 1.
LASTDATE Filtr použijeme u výrazu LASTDATE , například LASTDATE ( 'View Name'[Date] )k vyhledání nejnovějšího data napříč všemi řádky v tabulce a odstranění řádků, které nesdílely stejné datum. S tabulkou snímků vygenerovanou zobrazením Analýza tento filtr efektivně vybere poslední den vybraného období.
LOOKUPVALUE Vrátí hodnotu v result_columnName řádku, která splňuje všechna kritéria zadaná search_columnName a search_value.
MAX Vrátí největší číselnou hodnotu ve sloupci nebo mezi dvěma skalárními výrazy. Použijeme MAX ( 'View Name'[Date] )k určení nejnovějšího data po použití všech filtrů.