Aggiungere una misura di stato temporale al report di Power BI

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Il tempo trascorso da un elemento di lavoro in uno stato del flusso di lavoro specifico o in una serie di stati è un aspetto importante per comprendere l'efficienza. I widget Cycle Time e Lead Time Analytics forniscono alcune misure di tempo nello stato. Tuttavia, questi widget potrebbero non avere il livello di dettaglio desiderato.

Questo articolo fornisce ricette che usano DATA Analysis Expressions (DAX) per valutare il tempo impiegato dagli elementi di lavoro in una combinazione di stati. In particolare, si apprenderà come aggiungere le misure e le colonne calcolate seguenti ai report di Power BI e usarle per generare vari grafici di tendenza. Tutti i campi sono colonne calcolate tranne la prima elencata.

Conteggio Descrizione
Conteggio elementi di lavoro (misura) Calcola il numero di elementi di lavoro distinti in base all'ultima voce del giorno per l'elemento di lavoro
Ordinamento stato Aggiunge una colonna da utilizzare per ordinare gli stati del flusso di lavoro in base alla sequenza Categoria stato
Data precedente Aggiunge una colonna che calcola la data precedente in base alla colonna Date
Diff data in giorni Aggiunge una colonna che calcola il numero di giorni tra le colonne Date e Date Previous
Ultimo giorno in stato Aggiunge una colonna che determina se il valore date è l'ultimo giorno in cui l'elemento di lavoro si trovava in uno stato
Tempo di stato in giorni Aggiunge una colonna che calcola il numero di giorni trascorsi dall'elemento di lavoro in ogni stato
Stato precedente Aggiunge una colonna che identifica lo stato precedente per ogni riga della tabella dati
Stato modificato Aggiunge una colonna che determina la data di transizione di un elemento di lavoro da uno stato a un altro
Flusso di stato Aggiunge una colonna che illustra il flusso di stato come un elemento di lavoro passa da uno stato a un altro
Conteggio modifiche stato Aggiunge una colonna che calcola il numero di volte in cui un elemento di lavoro è passato da uno stato a un altro
Conteggio modifiche stato - Primo completamento Aggiunge una colonna che determina il numero di transizioni di un elemento di lavoro allo stato Completato per la prima volta. In altre parole, quando passa da qualsiasi altro stato allo stato Completato.
Conteggio modifiche stato - Ultima proposta Aggiunge una colonna che determina se un elemento di lavoro era in uno stato Proposto in precedenza dopo la transizione a uno stato successivo
Tempo di riavvio dello stato in giorni Aggiunge una colonna che calcola i giorni trascorsi da un elemento di lavoro in uno stato di riavvio
Tempo di rielaborazione stato in giorni Aggiunge una colonna che calcola i giorni trascorsi da un elemento di lavoro in uno stato diverso da Completato

Importante

  • Quando si aggiunge una colonna calcolata o una misura in base agli esempi illustrati in questo articolo, sostituire Nome vista con il nome della tabella dati o della vista Analisi. Ad esempio, sostituire Nome visualizzazione con bug attivi.
    Screenshot della scheda Strumenti tabella di Power BI, Nome tabella dati.
  • Analisi non supporta revisioni all'interno del giorno. Questi esempi hanno la massima precisione quando si usa un intervallo giornaliero quando si fa riferimento a una visualizzazione analisi.
  • Tutte le revisioni all'interno del giorno o all'interno del periodo (settimanale/mensile) vengono ignorate dai calcoli. Ciò può comportare risultati imprevisti per scenari specifici, ad esempio un elemento di lavoro che non visualizza l'ora "In corso" quando un elemento di lavoro è "In corso" per meno di un giorno.
  • Le aggregazioni predefinite di Power BI vengono usate quando possibile anziché creare misure.
  • Alcuni calcoli includono +0 per assicurarsi che venga incluso un valore numerico per ogni riga anziché BLANK. Potrebbe essere necessario rivedere alcune delle definizioni di colonna calcolate in base agli stati del flusso di lavoro usati dal progetto. Ad esempio, se il progetto usa Nuovo, Attivo e Chiuso al posto di Proposta, In corso e Completato.

Prerequisiti

  • Per visualizzare i dati di Analisi ed eseguire query sul servizio, è necessario essere membri di un progetto con accesso basic o superiore. Per impostazione predefinita, a tutti i membri del progetto vengono concesse le autorizzazioni per eseguire query su Analisi e definire le visualizzazioni di Analisi.
  • Per altre informazioni sugli altri prerequisiti relativi all'abilitazione di servizi e funzionalità e alle attività generali di rilevamento dei dati, vedere Autorizzazioni e prerequisiti per l'accesso ad Analytics.

Nota

Per eseguire tutte le misure di stato temporali descritte in questo articolo, assicurarsi di includere i campi seguenti nelle visualizzazioni di Analisi, power Query o query OData: Data e categoria stato creati oltre ai campi predefiniti: Percorso area, Assegnato a, Percorso iterazione, Stato, Titolo, ID elemento di lavoro e Tipo di elemento di lavoro.

Prendere in considerazione anche l'uso di una visualizzazione analisi basata su una granularità giornaliera . Gli esempi in questo articolo si basano sulla visualizzazione Analisi dei bug attivi definita in Creare un report dei bug attivi in Power BI in base a una visualizzazione analisi personalizzata, con l'eccezione che vengono selezionati 60 giorni di granularità cronologica e giornaliera . Determinare anche se si desidera esaminare gli elementi di lavoro completati o chiusi.

Aggiungere una misura Conteggio elementi di lavoro

Per semplificare la generazione rapida di report, sono state progettate visualizzazioni di Analisi per l'uso con le aggregazioni predefinite in Power BI. Per illustrare la differenza tra un'aggregazione predefinita e una misura, si inizia con una semplice misura di conteggio degli elementi di lavoro.

  1. Caricare la visualizzazione Analisi in Power BI Desktop. Per informazioni dettagliate, vedere Connessione con Power BI Data Connessione or, Connessione a una visualizzazione Analisi.

  2. Selezionare la tabella dati e quindi nella scheda Strumenti tabella, nella sezione Calcoli della barra multifunzione scegliere Nuova misura.

    Screenshot della scheda Strumenti tabella di Power BI, Nuova misura.

  3. Sostituire il testo predefinito con il codice seguente e quindi selezionare il segno di spunta.

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

    La misura Conteggio elementi di lavoro usa le CALCULATEfunzioni , COUNTROWSe LASTDATE DAX descritte in modo più dettagliato più avanti in questo articolo.

    Nota

    Ricordarsi di sostituire Nome vista con il nome della tabella per la visualizzazione Analisi. Ad esempio, qui sostituiamo View Name con i bug attivi.

    Screenshot della scheda Strumenti di misura di Power BI, sintassi Conteggio elementi di lavoro.

Differenze tra una misura e una colonna calcolata

Una misura valuta sempre l'intera tabella in cui una colonna calcolata è specifica di una singola riga. Per altre informazioni, vedere Colonne calcolate e misure in DAX.

Confrontare la misura Conteggio elementi di lavoro con l'aggregazione conteggio predefinita in base all'ID elemento di lavoro. L'immagine seguente viene creata aggiungendo l'oggetto visivo Scheda e la misura Conteggio elementi di lavoro alla prima scheda e la proprietà ID elemento di lavoro alla seconda scheda.

Screenshot della pagina del report di Power BI, due schede che mostrano la misura Conteggio elementi di lavoro e la proprietà ID elemento di lavoro.

Per ottenere il conteggio corretto usando un'aggregazione predefinita, applicare il filtro Is Current è uguale a "True". Questo modello di applicazione di filtri a un'aggregazione predefinita è la base per molti degli esempi forniti in questo articolo.

Screenshot della pagina del report di Power BI, il numero di ID elemento di lavoro filtrato.

Aggiungi ordinamento stato

Per impostazione predefinita, Power BI mostra gli stati ordinati alfabeticamente in una visualizzazione. Può essere fuorviante quando si desidera visualizzare l'ora nello stato e Proposta viene visualizzato dopo In corso. La procedura seguente consente di risolvere questo problema.

  1. Verificare che il campo Categoria stato sia incluso nella visualizzazione Analisi. Questo campo è incluso in tutte le visualizzazioni condivise predefinite.

  2. Selezionare la tabella dati e quindi nella scheda Strumenti tabella, nella sezione Calcoli della barra multifunzione scegliere Nuova colonna.

    Screenshot della scheda Strumenti tabella di Power BI, Nuova colonna.

  3. Sostituire il testo predefinito con il codice seguente e quindi selezionare il segno di spunta.

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

    Vedere l'esempio seguente:

    Screenshot della scheda Strumenti tabella di Power BI, voce categoria stato.

    Nota

    Potrebbe essere necessario rivedere la definizione se è necessaria una maggiore granularità rispetto a Quella fornita da State Category . Categoria stato fornisce l'ordinamento corretto in tutti i tipi di elemento di lavoro indipendentemente dalle personalizzazioni dello stato.

  4. Aprire la visualizzazione Dati e selezionare la colonna Stato .

  5. Nella scheda Strumenti colonna scegliere Ordina per colonna e quindi selezionare il campo Ordinamento stato.

    Screenshot della scheda Strumenti colonna di Power BI, Ordina per colonna.

Aggiungi data precedente

Il passaggio successivo per il calcolo dello stato temporizzato richiede il mapping dell'intervallo precedente (giorno, settimana, mese) per ogni riga di dati nel set di dati. Si tratta di un calcolo semplice usando una colonna calcolata. In genere, si definirà questa colonna come illustrato.

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

Tuttavia, questo approccio presenta due problemi principali:

  • Funziona solo per i periodi giornalieri.
  • Non gestisce le lacune nei dati. Ad esempio, se un elemento di lavoro viene spostato tra progetti.

Per risolvere questi problemi, la colonna calcolata dovrebbe trovare il giorno precedente analizzando il campo Data .

Per aggiungere la colonna calcolata Data precedente , nella scheda Strumenti tabella scegliere Nuova colonna e quindi sostituire il testo predefinito con il codice seguente e selezionare il segno di spunta.

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

La colonna calcolata Date Previous usa tre funzioni DAX, MAX, ALLEXCEPTe EARLIER, descritte in modo più dettagliato più avanti in questo articolo. Poiché la colonna viene calcolata, viene eseguita per ogni riga della tabella e ogni volta che viene eseguita, ha il contesto di tale riga specifica.

Screenshot del grafico tabella di Power BI e della scheda Visualizzazione per Data e Data precedente.

Suggerimento

Dal menu di scelta rapida per i campi Data e Data precedente scegliere Data (anziché Gerarchia data) per visualizzare una singola data per questi campi.

Aggiungi diff data in giorni

Date Previous calcola la differenza tra la data precedente e quella corrente per ogni riga. Con data diff in giorni, viene calcolato un conteggio dei giorni tra ognuno di questi periodi. Per la maggior parte delle righe in uno snapshot giornaliero, il valore è uguale a 1. Tuttavia, per molti elementi di lavoro con lacune nel set di dati, il valore è maggiore di 1.

Importante

Richiede l'aggiunta della colonna calcolata Date Previous alla tabella.

È importante considerare il primo giorno del set di dati in cui Date Previous è vuoto. In questo esempio si assegna alla riga un valore standard pari a 1 per mantenere coerente il calcolo.

Nella scheda Modellazione scegliere Nuova colonna e quindi sostituire il testo predefinito con il codice seguente e selezionare il segno di spunta.

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

Questa colonna calcolata usa le ISBLANK funzioni DAX e DATEDIFF descritte più avanti in questo articolo.

Aggiungi ultimo giorno nello stato

In questo passaggio successivo viene calcolato se una determinata riga rappresenta l'ultimo giorno in cui un elemento di lavoro specifico si trovava in uno stato. Supporta le aggregazioni predefinite in Power BI aggiunte nella sezione successiva in cui si aggiunge la colonna Ora stato in giorni .

Nella scheda Modellazione scegliere Nuova colonna e quindi sostituire il testo predefinito con il codice seguente e selezionare il segno di spunta.

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

Aggiungere l'ora di stato in giorni

Il tempo trascorso da un elemento di lavoro in uno stato specifico può ora essere calcolato sommando la diff data in giorni per ogni elemento di lavoro. Questo calcolo include tutto il tempo impiegato in uno stato specifico anche se è passato tra stati più volte. È possibile valutare ogni riga come tendenza usando Date o le informazioni più recenti usando Is Last Day In State.

Importante

Richiede che le colonne calcolate Date Diff in Days e Is Last Day in State siano state aggiunte alla tabella.

Nella scheda Modellazione scegliere Nuova colonna e quindi sostituire il testo predefinito con il codice seguente e selezionare il segno di spunta.

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

Creare grafici di tendenza a colonne in pila in base all'ora di stato in giorni

Per illustrare la colonna State Time in Days , vengono creati i grafici a colonne in pila seguenti. Il primo grafico mostra il numero di elementi di lavoro in ogni stato nel tempo.

Screenshot del grafico a colonne in pila di Power BI e della scheda Visualizzazione che illustra il conteggio del titolo dell'elemento di lavoro per data e stato.

Il secondo grafico illustra la tendenza dei giorni medi in cui gli elementi di lavoro attivi sono in uno stato specifico.

Screenshot del grafico a colonne in pila di Power BI e della scheda Visualizzazione che illustra i giorni medi di stato per gli elementi di lavoro per data.

Aggiungere l'ora di stato in giorni - Più recente (ultimo giorno nello stato)

Quando si valuta lo stato di tempo per ogni elemento di lavoro in una tabella o quando viene filtrato in base a un campo come Percorso area, non usare la colonna Tempo di stato in giorni in un'aggregazione. L'aggregazione usa il valore per ogni giorno in cui l'elemento di lavoro si trovava nello stato . Ad esempio, se un elemento di lavoro era In corso il lunedì e spostato in Completato il giovedì, lo stato di tempo è di tre giorni, ma la somma della colonna State Time in Days è di sei giorni, 1+2+3, che non è corretta.

Aggiungere l'ora di stato in giorni - Più recente.

Per risolvere questo problema, usare State Time in Days e applicare il filtro Is Last Day In State è uguale a 'True'. Elimina tutti i dati cronologici necessari per una tendenza e si concentra invece solo sul valore più recente per ogni stato.

Usare State Time in Days e applicare il filtro Is Last Day In State è uguale a 'True'.

Aggiungi ora stato in giorni - In corso

Negli esempi precedenti, state Time in Days per un determinato elemento di lavoro viene conteggiato solo quando l'elemento di lavoro si trovava in tale stato specifico. Se l'obiettivo consiste nell'avere lo stato di tempo per un determinato conteggio degli elementi di lavoro verso una media in modo continuo, è necessario modificare il calcolo. Ad esempio, se si vuole tenere traccia dello stato "In corso", si aggiunge la colonna calcolata State Time in Days - In Progress .

Nella scheda Modellazione scegliere Nuova colonna e quindi sostituire il testo predefinito con il codice seguente e selezionare il segno di spunta.

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

Nota

Potrebbe essere necessario rivedere la definizione in base agli stati del flusso di lavoro usati dal progetto. Ad esempio, il progetto usato negli esempi in questo articolo usa lo stato del flusso di lavoro "In corso", ma i processi Agile, Scrum e CMMI usano in genere gli stati 'Active' o 'Committed' per rappresentare il lavoro in corso. Per una panoramica, vedere Stati del flusso di lavoro e categorie di stato.

L'immagine seguente mostra l'effetto di considerare tutto lo stato di tempo per ogni elemento di lavoro esistente (visualizzato a sinistra) rispetto solo a tali elementi di lavoro in uno stato specifico in un determinato giorno (visualizzato a destra).

Confronto delle tendenze del tempo medio nello stato

Stato tempo in giorni tendenza di più stati

L'analisi delle prestazioni tra più stati è anche possibile usando il modello "Continuo". Tuttavia, questo approccio funziona solo con un grafico di tendenza.

Nella scheda Modellazione scegliere Nuova colonna e quindi sostituire il testo predefinito con il codice seguente e selezionare il segno di spunta.

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

Nota

Potrebbe essere necessario rivedere la definizione in base agli stati del flusso di lavoro usati dal progetto. Ad esempio, se il progetto usa 'Active' al posto di 'Committed' o 'Proposed'.

Il grafico a sinistra mostra la media combinata mentre il lato destro mostra ogni singolo stato.

Confronto delle tendenze di più stati

Ottenere l'ora di stato in giorni- Più recente per più stati

Per la creazione di una tendenza, usare la colonna Calcolata State Time in Days- Latest . Con un filtro sugli stati, la colonna State Time in Days e Is Last Day in State offre un modo semplice per ottenere il tempo totale di qualsiasi elemento di lavoro o gruppo di elementi di lavoro impiegato in un set di stati.

Ora più recente negli Stati

Aggiungi stato precedente

La colonna calcolata Date Previous può essere usata anche per cercare valori precedenti, ad esempio lo stato precedente per ogni elemento di lavoro.

Importante

Richiede l'aggiunta della colonna calcolata Date Previous alla tabella.

Nella scheda Modellazione scegliere Nuova colonna e quindi sostituire il testo predefinito con il codice seguente e selezionare il segno di spunta.

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

Questa colonna calcolata usa , LOOKUPVALUEdescritta più avanti in questo articolo.

Il primo LOOKUPVALUE parametro, 'View Name'[State], specifica di restituire il valore di [State].

Il parametro successivo, 'View Name'[Work Item Id], 'View Name'[Work Item Id], specifica che devono essere considerate solo le righe con un ID elemento di lavoro corrispondente come riga corrente.

E, l'ultimo parametro, 'View Name'[Date], 'View Name'[Date Previous], specifica che la data della riga restituita deve avere un [Date] corrispondente alla [Data precedente] della riga corrente. In uno snapshot una sola riga può soddisfare questi criteri.

Aggiungi stato modificato

Usando la colonna State Previous è possibile contrassegnare le righe per ogni elemento di lavoro in cui si è verificata una transizione di stato. La colonna calcolata Stage Changed include due considerazioni speciali:

  • Valori vuoti di *State Previous, che è stato impostato sulla data di creazione dell'elemento di lavoro
  • La creazione di un elemento di lavoro viene considerata una transizione di stato

Importante

Richiede l'aggiunta della colonna calcolata State Previous alla tabella.

Nella scheda Modellazione scegliere Nuova colonna e quindi sostituire il testo predefinito con il codice seguente e selezionare il segno di spunta.

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

La colonna calcolata è un valore booleano che identifica se la riga è una transizione di stato. Usando l'operatore Not Equal To , vengono intercette correttamente le righe in cui lo stato precedente non corrisponde allo stato corrente, il che significa che il confronto restituisce True come previsto.

Aggiungi flusso di stato

Con le colonne calcolate State Previous e State Changed è possibile creare una colonna che illustra il flusso di stato per un determinato elemento di lavoro. La creazione di questa colonna è facoltativa ai fini di questo articolo.

Importante

Richiede l'aggiunta delle colonne calcolate State Previous e State Changed alla tabella.

Nella scheda Modellazione scegliere Nuova colonna e quindi sostituire il testo predefinito con il codice seguente e selezionare il segno di spunta.

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

Aggiungi conteggio modifiche stato

Quando si passa alle misure più complesse, è necessario avere una rappresentazione del numero totale di modifiche dello stato per confrontare le righe di un dato elemento di lavoro. Per ottenere la rappresentazione, aggiungere una colonna calcolata Conteggio modifiche stato.

Importante

Richiede l'aggiunta della colonna calcolata State Changed alla tabella.

Nella scheda Modellazione scegliere Nuova colonna e quindi sostituire il testo predefinito con il codice seguente e selezionare il segno di spunta.

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

Aggiungi conteggio modifiche stato - Ultimo tempo di riavvio proposto e stato in giorni

Il tempo di riavvio dello stato in giorni è un calcolo piuttosto complesso. Il primo passaggio consiste nel trovare l'ultima volta che un elemento di lavoro si trovava in uno stato proposto. Aggiungere la colonna calcolata Conteggio modifiche stato - Ultima colonna calcolata proposta .

Nota

Potrebbe essere necessario rivedere le definizioni seguenti in base agli stati del flusso di lavoro usati dal progetto. Ad esempio, se il progetto usa "Nuovo" al posto di "Proposta".

Nella scheda Modellazione scegliere Nuova colonna e quindi sostituire il testo predefinito con il codice seguente e selezionare il segno di spunta.

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

Poi, guardare più indietro al passato e vedere se ci sono stati alcuni stati attivi prima di questo stato proposto. Infine, sommare tutti i giorni in cui l'elemento di lavoro era in stato attivo prima dell'ultima proposta.

Nella scheda Modellazione scegliere Nuova colonna e quindi sostituire il testo predefinito con il codice seguente e selezionare il segno di spunta.

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

Poiché l'ora di riavvio dello stato in giorni viene aggiornata per ogni riga di dati, è possibile creare una tendenza per valutare le rielaborazioni in sprint specifici o esaminare le rielaborazioni per singoli elementi di lavoro usando Is Current.

Aggiungere l'ora di rielaborazione dello stato in giorni

Analogamente all'ora di riavvio dello stato in giorni, il tempo di rielaborazione stato in giorni cerca la prima volta che un elemento di lavoro si trovava nella categoria Stato completato. Dopo tale periodo, ogni giorno un elemento di lavoro passa in uno stato diverso da Completato, viene conteggiato come rielaborazione.

  1. Creare la colonna "Conteggio modifiche stato - Primo completato". Questa colonna tiene traccia del numero di transizioni di un elemento di lavoro allo stato Completato da qualsiasi altro stato.

    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. Nella scheda Modellazione scegliere Nuova colonna e quindi sostituire il testo predefinito con il codice seguente e selezionare il segno di spunta.

    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
    )
    

    Nota

    Potrebbe essere necessario rivedere la definizione precedente in base agli stati del flusso di lavoro usati dal progetto. Ad esempio, se il progetto usa Done al posto di Closed e così via.

Funzioni DAX

Altre informazioni sono disponibili in questa sezione per le funzioni DAX usate per creare le colonne calcolate e la misura aggiunte in questo articolo. Vedere anche DAX, Funzioni di Business Intelligence per le gerarchie temporali.

Funzione Descrizione
ALLEXCEPT Rimuove tutti i filtri di contesto nella tabella, ad eccezione dei filtri applicati alle colonne specificate. In sostanza, ALLEXCEPT ('View Name'', 'View Name'[Work Item Id]) riduce le righe della tabella fino a quelle che condividono lo stesso ID elemento di lavoro della riga corrente.
CALCULATE Questa funzione è la base per quasi tutti gli esempi. La struttura di base è un'espressione seguita da una serie di filtri applicati all'espressione.
COUNTROWS Questa funzione, COUNTROWS ( 'View Name' ), conta semplicemente il numero di righe che rimangono dopo l'applicazione dei filtri.
DATEDIFF Restituisce il conteggio dei limiti di intervallo superati tra due date. DATEDIFFsottrae Date Previous from Date (Data precedente) per determinare il numero di giorni tra di essi.
EARLIER Restituisce il valore corrente della colonna specificata in un passaggio di valutazione esterno della colonna indicata. Ad esempio, 'View Name'[Date] < EARLIER ( 'View Name'[Date] ) riduce ulteriormente il set di dati solo alle righe che si sono verificate prima della data per la riga corrente a cui viene fatto riferimento tramite la EARLIER funzione . EARLIER non fa riferimento alle date precedenti; definisce in modo specifico il contesto di riga della colonna calcolata.
ISBLANK Controlla se un valore è vuoto e restituisce TRUE o FALSE. ISBLANK valuta la riga corrente per determinare se Date Previous ha un valore. In caso contrario, l'istruzione If imposta Date Diff in Days su 1.
LASTDATE Il filtro viene applicato LASTDATE a un'espressione, ad esempio LASTDATE ( 'View Name'[Date] ), per trovare la data più recente in tutte le righe della tabella ed eliminare le righe che non condividono la stessa data. Con la tabella snapshot generata da una visualizzazione Analisi, questo filtro seleziona in modo efficace l'ultimo giorno del periodo selezionato.
LOOKUPVALUE Restituisce il valore in result_columnName per la riga che soddisfa tutti i criteri specificati da search_columnName e search_value.
MAX Restituisce il valore numerico più grande in una colonna o tra due espressioni scalari. Si applica MAX ( 'View Name'[Date] ), per determinare la data più recente dopo l'applicazione di tutti i filtri.