Adicionar uma medida de tempo no estado ao seu relatório do Power BI

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

O tempo que um item de trabalho passa em um estado específico do fluxo de trabalho ou em uma série de estados é um aspeto importante para entender a eficiência. Os widgets Cycle Time e Lead Time Analytics fornecem algumas medidas de time-in-state. No entanto, esses widgets podem não ter o nível de detalhe desejado.

Este artigo fornece receitas usando DAX (Data Analysis Expressions) para avaliar o tempo gasto por itens de trabalho em uma combinação de estados. Especificamente, você aprende a adicionar as seguintes colunas calculadas e de medida aos seus relatórios do Power BI e usá-las para gerar vários gráficos de tendência. Todos os campos são colunas calculadas, exceto o primeiro listado.

Count Description
Contagem de Itens de Trabalho (medida) Calcula a contagem de itens de trabalho distintos com base na entrada do último dia para o item de trabalho
Ordem de classificação do estado Adiciona uma coluna a ser usada para classificar Estados do fluxo de trabalho com base na sequência Categoria de Estado
Data Anterior Adiciona uma coluna que calcula a data anterior com base na coluna Data
Data Diff em Dias Adiciona uma coluna que calcula o número de dias entre as colunas Data e Data Anterior
É último dia no estado Adiciona uma coluna que determina se o valor Data é o último dia em que o item de trabalho esteve em um Estado
Estabeleça a hora em dias Adiciona uma coluna que calcula o número de dias que o item de trabalho gastou em cada Estado
Estado Anterior Adiciona uma coluna que identifica o estado anterior para cada linha na tabela de dados
Estado alterado Adiciona uma coluna que determina a data em que um item de trabalho transitou de um Estado para outro
Fluxo de Estado Adiciona uma coluna que ilustra o fluxo de estado à medida que um item de trabalho transita de um Estado para outro
Contagem de alterações de estado Adiciona uma coluna que calcula o número de vezes que um item de trabalho transitou de um Estado para outro
Contagem de alterações de estado - Primeira concluída Adiciona uma coluna que determina o número de vezes que um item de trabalho transita para o estado Concluído pela primeira vez. Em outras palavras, quando ele se move de qualquer outro estado para o estado Concluído.
Contagem de Alterações de Estado - Última Proposta Adiciona uma coluna que determina se um item de trabalho estava em um estado Proposto anteriormente após a transição para um estado posterior
Tempo de reinicialização do estado em dias Adiciona uma coluna que calcula os dias que um item de trabalho passou em um estado de reinicialização
Tempo de retrabalho do estado em dias Adiciona uma coluna que calcula os dias que um item de trabalho gasta em um estado diferente de Concluído

Importante

  • Ao adicionar uma coluna ou medida calculada de acordo com os exemplos mostrados neste artigo, substitua Nome do Modo de Exibição pelo nome da tabela da exibição ou da tabela de dados do Google Analytics. Por exemplo, substitua View Name por Ative Bugs.
    Captura de ecrã do separador Ferramentas de Tabela do Power BI, Nome da tabela de dados.
  • O Google Analytics não suporta revisões intradiárias. Esses exemplos têm a maior precisão ao usar um intervalo diário ao fazer referência a uma visualização do Google Analytics.
  • Todas as revisões intradiárias ou intra-período (semanal/mensal) são ignoradas pelos cálculos. Isso pode resultar em resultados inesperados para cenários específicos, como um item de trabalho que não mostra nenhum tempo "Em andamento" quando um item de trabalho está "Em andamento" por menos de um dia.
  • As agregações padrão do Power BI são usadas sempre que possível em vez de criar medidas.
  • Alguns cálculos incluem +0 para garantir que um valor numérico seja incluído para cada linha em vez de BLANK.
  • Talvez seja necessário revisar algumas das definições de coluna calculadas com base nos estados do fluxo de trabalho usados pelo projeto. Por exemplo, se seu projeto usa Novo, Ativo e Fechado no lugar de Proposto, Em Andamento e Concluído.
  • A coluna Data referida neste artigo não é uma coluna nativa no Azure DevOps; É uma coluna derivada criada no PowerBI para facilitar o relatório Tempo no Estado . Você pode criar esta coluna usando as colunas existentes relacionadas à data, como "Data alterada" ou "Data alterada do estado".

Pré-requisitos

  • Acesso: Ser membro de um projeto com pelo menos acesso Básico .
  • Permissões: por predefinição, os membros do projeto têm permissão para consultar o Analytics e criar vistas.
  • Para obter mais informações sobre outros pré-requisitos relacionados com a ativação de serviços e funcionalidades e atividades gerais de monitorização de dados, consulte Permissões e pré-requisitos para aceder ao Analytics.

Nota

Para exercer todas as medidas de tempo no estado descritas neste artigo, certifique-se de incluir os seguintes campos nas suas vistas do Analytics, Power Query ou consulta OData: Data de Criação e Categoria de Estado, além dos campos predefinidos: Caminho de Área, Atribuído a, Caminho de Iteração, Estado, Título, ID do Item de Trabalho e Tipo de Item de Trabalho.

Além disso, considere usar uma visualização do Google Analytics com base em uma granularidade diária . Os exemplos neste artigo baseiam-se na vista do Ative Bugs Analytics definida em Criar um relatório de bugs ativos no Power BI com base numa vista personalizada do Analytics, com a exceção de que estão selecionados 60 dias de Histórico e granularidade Diária . Determine também se deseja revisar itens de trabalho concluídos ou fechados.

Adicionar uma medida de Contagem de Itens de Trabalho

Para simplificar a geração rápida de relatórios, projetamos modos de exibição do Google Analytics para trabalhar com agregações padrão no Power BI. Para ilustrar a diferença entre uma agregação padrão e uma medida, começamos com uma medida simples de contagem de itens de trabalho.

  1. Carregue a vista do Google Analytics no Power BI Desktop. Para obter detalhes, consulte Conectar-se com o Power BI Data Connector, Conectar-se a um modo de exibição do Google Analytics.

  2. Selecione a tabela de dados e, na guia Ferramentas de tabela, seção Cálculos da faixa de opções, escolha Nova medida.

    Captura de ecrã do separador Ferramentas da Tabela do Power BI, Nova medida.

  3. Substitua o texto padrão pelo código a seguir e selecione a marca de seleção.

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

    A medida de contagem de itens de trabalho usa as CALCULATEfunções , COUNTROWSe LASTDATE DAX que são descritas com mais detalhes posteriormente neste artigo.

    Nota

    Lembre-se de substituir View Name pelo nome da tabela para a visualização do Google Analytics. Por exemplo, aqui substituímos View Name por Ative bugs.

    Captura de ecrã do separador Ferramentas de Medida do Power BI, sintaxe Contagem de Itens de Trabalho.

Qual é a diferença entre uma medida e uma coluna calculada

Uma medida sempre avalia a tabela inteira onde uma coluna calculada é específica para uma única linha. Para obter mais informações, consulte Colunas calculadas e medidas no DAX.

Compare a medida de Contagem de Itens de Trabalho com a agregação de contagem padrão com base na ID do Item de Trabalho. A imagem a seguir é criada adicionando o visual do cartão e a medida de contagem de itens de trabalho ao primeiro cartão e a propriedade ID do item de trabalho ao segundo cartão.

Captura de ecrã da página de relatório do Power BI, dois cartões a mostrar a medida Contagem de Itens de Trabalho e a propriedade ID do Item de Trabalho.

Para obter a contagem correta usando uma agregação padrão, aplique o filtro É atual é igual a 'Verdadeiro'. Esse padrão de aplicação de filtros a uma agregação padrão é a base para muitos dos exemplos fornecidos neste artigo.

Captura de ecrã da página de relatório do Power BI, contagem de ID do item de trabalho filtrada.

Adicionar ordem de classificação de estado

Por padrão, o Power BI mostra estados classificados alfabeticamente em uma visualização. Pode ser enganoso quando você deseja visualizar o tempo no estado e Proposto aparece depois de Em andamento. As etapas a seguir ajudam a resolver esse problema.

  1. Verifique se o campo Categoria do Estado está incluído na visualização Análise. Este campo está incluído em todas as vistas partilhadas predefinidas.

  2. Selecione a tabela de dados e, na guia Ferramentas de tabela, seção Cálculos da faixa de opções, escolha Nova coluna.

    Captura de ecrã do separador Ferramentas de Tabela do Power BI, coluna Nova.

  3. Substitua o texto padrão pelo código a seguir e selecione a marca de seleção.

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

    Veja o seguinte exemplo:

    Captura de ecrã do separador Ferramentas de Tabela do Power BI, entrada de categoria de estado.

    Nota

    Talvez seja necessário revisar a definição se precisar de mais granularidade do que a Categoria de Estado fornece. Categoria de Estado fornece classificação correta em todos os tipos de item de trabalho, independentemente de quaisquer personalizações de Estado .

  4. Abra a visualização Dados e selecione a coluna Estado .

  5. Na guia Ferramentas de Coluna, escolha Classificar por Coluna e selecione o campo Ordem de Classificação de Estado.

    Captura de ecrã do separador Ferramentas de Coluna do Power BI, Ordenar por seleção de coluna.

Adicionar Data Anterior

A próxima etapa para calcular o tempo no estado requer o mapeamento do intervalo anterior (dia, semana, mês) para cada linha de dados no conjunto de dados. É um cálculo simples usando uma coluna calculada. Normalmente, você definiria essa coluna como mostrada.

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

No entanto, esta abordagem tem dois problemas principais:

  • Funciona apenas por períodos diários.
  • Ele não lida com lacunas nos dados. Por exemplo, se um item de trabalho é movido entre projetos.

Para resolver esses problemas, a coluna calculada deve encontrar o dia anterior verificando o campo Data .

Para adicionar a coluna calculada Data Anterior , na guia Ferramentas de tabela, escolha Nova Coluna e, em seguida, substitua o texto padrão pelo código a seguir e selecione a marca de seleção.

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

A coluna calculada Data anterior usa três funções DAX, MAX, ALLEXCEPT, e , descritas com mais detalhes mais adiante EARLIERneste artigo. Como a coluna é calculada, ela é executada para cada linha da tabela e, cada vez que é executada, ela tem o contexto dessa linha específica.

Captura de ecrã do gráfico de tabela do Power BI e do separador Visualização para Data e Data Anterior.

Gorjeta

No menu de contexto dos campos Data e Data Anterior , escolha Data (em vez de Hierarquia de Data) para ver uma única data para esses campos.

Adicionar diferença de data em dias

Data Anterior calcula a diferença entre a data anterior e a data atual para cada linha. Com Data Diff em Dias, calculamos uma contagem de dias entre cada um desses períodos. Para a maioria das linhas em um instantâneo diário, o valor é igual a 1. No entanto, para muitos itens de trabalho que têm lacunas no conjunto de dados, o valor é maior que 1.

Importante

Requer que você tenha adicionado a coluna Data Anterior calculada à tabela.

É importante considerar o primeiro dia do conjunto de dados em que Data Anterior está em branco. Neste exemplo, damos a essa linha um valor padrão de 1 para manter o cálculo consistente.

Na guia Modelagem, escolha Nova Coluna e, em seguida, substitua o texto padrão pelo código a seguir e selecione a marca de seleção.

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

Esta coluna calculada usa as ISBLANK funções e DATEDIFF DAX descritas posteriormente neste artigo.

Adicionar é o último dia no estado

Nesta próxima etapa, calculamos se uma determinada linha representa o último dia em que um item de trabalho específico esteve em um estado. Ele dá suporte a agregações padrão no Power BI que adicionamos na próxima seção onde adicionamos a coluna Tempo de Estado em Dias .

Na guia Modelagem, escolha Nova Coluna e, em seguida, substitua o texto padrão pelo código a seguir e selecione a marca de seleção.

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

Adicionar Hora do Estado em Dias

O tempo que um item de trabalho passou em um estado específico agora pode ser calculado somando a Comparação de Data em Dias para cada item de trabalho. Esse cálculo inclui todo o tempo gasto em um estado específico, mesmo que ele tenha alternado entre estados várias vezes. É possível avaliar cada linha como uma tendência usando Data ou as informações mais recentes usando É o último dia no estado.

Importante

Requer que você tenha adicionado as colunas calculadas Comparação de Data em Dias e É Último Dia em Estado à tabela.

Na guia Modelagem, escolha Nova Coluna e, em seguida, substitua o texto padrão pelo código a seguir e selecione a marca de seleção.

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

Crie gráficos de tendência de colunas empilhadas com base na Hora do Estado em Dias

Para demonstrar a coluna Tempo de Estado em Dias , os seguintes gráficos de colunas empilhadas são criados. O primeiro gráfico mostra a contagem de itens de trabalho em cada estado ao longo do tempo.

Captura de ecrã do gráfico de colunas empilhadas do Power BI e do separador Visualização que ilustra a contagem do título do item de trabalho por data e estado.

O segundo gráfico ilustra a tendência da média de dias em que os itens de trabalho ativos estão em um determinado estado.

Captura de ecrã do gráfico de colunas empilhadas do Power BI e do separador Visualização que ilustra a média de dias no estado dos itens de trabalho por data.

Adicionar Hora do Estado em Dias - Mais Recente (É o Último Dia no Estado)

Ao avaliar o tempo no estado para cada item de trabalho em uma tabela ou quando filtrado por um campo como Caminho de Área, não use a coluna Tempo de Estado em Dias em uma agregação. A agregação usa o valor para cada dia em que o item de trabalho estava no estado. Por exemplo, se um item de trabalho estava em andamento na segunda-feira e movido para Concluído na quinta-feira, o tempo no estado é de três dias, mas a soma da coluna Hora do Estado em dias é de seis dias, 1+2+3o que está incorreto.

Adicionar Hora do Estado em Dias - Mais recente.

Para resolver esse problema, use Hora de Estado em Dias e aplique o filtro É Último Dia no Estado é igual a 'Verdadeiro'. Ele elimina todos os dados históricos necessários para uma tendência e se concentra apenas no valor mais recente para cada estado.

Use State Time in Days e aplique o filtro Is Last Day In State é igual a 'True'.

Adicionar Hora do Estado em Dias - Em Progresso

Nos exemplos anteriores, o Tempo de Estado em Dias para um determinado item de trabalho só é contado quando o item de trabalho estava nesse estado específico. Se o seu objetivo é fazer com que o tempo no estado de um determinado item de trabalho conte para uma média continuamente, você deve alterar o cálculo. Por exemplo, se quisermos acompanhar o estado "Em andamento", adicionamos a coluna calculada Tempo do Estado em Dias - Em Andamento .

Na guia Modelagem, escolha Nova Coluna e, em seguida, substitua o texto padrão pelo código a seguir e selecione a marca de seleção.

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

Talvez seja necessário revisar a definição com base nos estados do fluxo de trabalho usados pelo seu projeto. Por exemplo, o projeto usado nos exemplos deste artigo usa o estado de fluxo de trabalho 'Em andamento', no entanto, os processos Agile, Scrum e CMMI normalmente usam os estados 'Ativo' ou 'Comprometido' para representar o trabalho em andamento. Para obter uma visão geral, consulte Estados e categorias de estado do fluxo de trabalho.

A imagem a seguir mostra o efeito de considerar todo o tempo no estado para cada item de trabalho existente (mostrado à esquerda) versus apenas os itens de trabalho em um estado específico em um determinado dia (mostrado à direita).

Comparação de Tendência do Tempo Médio no Estado

Tendência de tempo de estado em dias de vários estados

Analisar o desempenho em vários estados também é possível usando o padrão "Contínuo". No entanto, essa abordagem só funciona com um gráfico de tendência.

Na guia Modelagem, escolha Nova Coluna e, em seguida, substitua o texto padrão pelo código a seguir e selecione a marca de seleção.

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

Talvez seja necessário revisar a definição com base nos estados do fluxo de trabalho usados pelo seu projeto. Por exemplo, se o seu projeto utilizar «Ativo» em vez de «Autorizado» ou «Proposto».

O gráfico da esquerda mostra a média combinada, enquanto o lado direito mostra cada estado individual.

Comparação de tendências de vários estados

Obtenha a hora do estado em dias - mais recente para vários estados

Use a coluna Tempo de Estado em Dias - Último calculado ao criar uma tendência. Com um filtro sobre os estados, a coluna Hora do Estado em Dias e É o Último Dia no Estado fornece uma maneira simples de obter o tempo total que qualquer item de trabalho ou grupo de itens de trabalho gasto em um conjunto de estados.

Últimas horas nos Estados Unidos

Adicionar Estado Anterior

A coluna Data Anterior calculada também pode ser usada para pesquisar valores passados, como o estado anterior, para cada item de trabalho.

Importante

Requer que você tenha adicionado a coluna Data Anterior calculada à tabela.

Na guia Modelagem, escolha Nova Coluna e, em seguida, substitua o texto padrão pelo código a seguir e selecione a marca de seleção.

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

Esta coluna calculada usa o LOOKUPVALUE, descrito mais adiante neste artigo.

O primeiro LOOKUPVALUE parâmetro, 'View Name'[State], especifica para retornar o valor de [State].

O próximo parâmetro, 'View Name'[Work Item Id], 'View Name'[Work Item Id], especifica que apenas as linhas com um ID de item de trabalho correspondente como a linha atual devem ser consideradas.

E, o último parâmetro, 'View Name'[Date], 'View Name'[Date Previous], especifica que a data da linha que está sendo retornada deve ter uma [Data] que corresponda à [Data Anterior] da linha atual. Em um instantâneo, apenas uma linha pode atender a esse critério.

Adicionar estado alterado

Usando a coluna Estado Anterior , podemos sinalizar as linhas para cada item de trabalho onde ocorreu uma transição de estado. A coluna calculada Estágio alterado tem duas considerações especiais:

  • Valores em branco de *State Previous, que definimos como a Data de Criação do item de trabalho
  • A criação de um item de trabalho é considerada uma transição de estado

Importante

Requer que você tenha adicionado a coluna calculada Estado Anterior à tabela.

Na guia Modelagem, escolha Nova Coluna e, em seguida, substitua o texto padrão pelo código a seguir e selecione a marca de seleção.

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

A coluna calculada é um valor booleano que identifica se a linha é uma transição de estado. Usando o Not Equal To operador, você captura corretamente as linhas em que o estado anterior não corresponde ao estado atual, o que significa que a comparação retorna True conforme o esperado.

Adicionar fluxo de estado

Com as colunas calculadas Estado Anterior e Estado Alterado, você pode criar uma coluna que ilustre o Fluxo de Estado para um determinado item de trabalho. A criação desta coluna é opcional para os fins deste artigo.

Importante

Requer que você tenha adicionado as colunas calculadas Estado Anterior e Estado Alterado à tabela.

Na guia Modelagem, escolha Nova Coluna e, em seguida, substitua o texto padrão pelo código a seguir e selecione a marca de seleção.

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

Adicionar contagem de alterações de estado

À medida que avançamos para as medidas mais complicadas, precisamos ter uma representação do número total de alterações de estado para comparar as linhas de um dado para um determinado item de trabalho. Obtemos a representação adicionando uma coluna calculada de Contagem de Alterações de Estado.

Importante

Requer que você tenha adicionado a coluna calculada Estado alterado à tabela.

Na guia Modelagem, escolha Nova Coluna e, em seguida, substitua o texto padrão pelo código a seguir e selecione a marca de seleção.

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

Adicionar contagem de alterações de estado - última proposta e tempo de reinicialização do estado em dias

O Tempo de Reinicialização do Estado em Dias é um cálculo bastante complexo. O primeiro passo é encontrar a última vez que um item de trabalho esteve em um estado proposto. Adicione a coluna Contagem de Alteração de Estado - Última Proposta calculada.

Nota

Talvez seja necessário revisar as seguintes definições com base nos estados do fluxo de trabalho usados pelo seu projeto. Por exemplo, se o seu projeto utilizar «Novo» em vez de «Proposto».

Na guia Modelagem, escolha Nova coluna e, em seguida, substitua o texto padrão pelo código a seguir e selecione a marca de seleção.

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

Então, olhe mais para o passado e veja se havia alguns estados ativos antes desse estado proposto. Por fim, resuma todos os dias em que o item de trabalho estava em estado ativo antes da última proposta.

Na guia Modelagem, escolha Nova Coluna e, em seguida, substitua o texto padrão pelo código a seguir e selecione a marca de seleção.

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

Como o Tempo de Reinicialização de Estado em Dias é atualizado para cada linha de dados, você pode criar uma tendência para avaliar o retrabalho em sprints específicos ou examinar o retrabalho para itens de trabalho individuais usando É Atual.

Adicionar tempo de retrabalho de estado em dias

Semelhante ao Tempo de Reinicialização do Estado em Dias, o Tempo de Retrabalho do Estado em Dias procura pela primeira vez que um item de trabalho estava na categoria Estado Concluído. Após esse tempo, cada dia que um item de trabalho passa em um estado diferente de Concluído, conta como retrabalho.

  1. Crie a coluna "Contagem de alterações de estado - primeira concluída". Esta coluna controla o número de vezes que um item de trabalho transita para o estado Concluído a partir de qualquer outro estado.

    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 guia Modelagem, escolha Nova Coluna e, em seguida, substitua o texto padrão pelo código a seguir e selecione a marca de seleção.

    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

    Talvez seja necessário revisar a definição anterior com base nos estados do fluxo de trabalho usados pelo seu projeto. Por exemplo, se o seu projeto usa Concluído no lugar de Fechado e assim por diante.

Funções DAX

Informações adicionais são fornecidas nesta seção para as funções DAX usadas para criar as colunas calculadas e a medida adicionada neste artigo. Consulte também DAX, Funções de inteligência de tempo.

Function Description
ALLEXCEPT Remove todos os filtros de contexto na tabela, exceto os filtros aplicados às colunas especificadas. Essencialmente, ALLEXCEPT ('View Name'', 'View Name'[Work Item Id]) reduz as linhas na tabela para apenas aquelas que compartilham o mesmo ID de item de trabalho que a linha atual.
CALCULATE Esta função é a base para quase todos os exemplos. A estrutura básica é uma expressão seguida por uma série de filtros que são aplicados à expressão.
COUNTROWS Esta função, COUNTROWS ( 'View Name' ), simplesmente conta o número de linhas que permanecem após a aplicação dos filtros.
DATEDIFF Devolve a contagem de limites de intervalo cruzados entre duas datas. DATEDIFF subtrai Data Anterior de Data para determinar o número de dias entre eles.
EARLIER Devolve o valor atual da coluna especificada numa passagem de avaliação externa da coluna mencionada. Por exemplo, 'View Name'[Date] < EARLIER ( 'View Name'[Date] ) reduz ainda mais o conjunto de dados para apenas as linhas que ocorreram antes da data para a linha atual que é referenciada usando a EARLIER função. EARLIER não se refere a datas anteriores; ele define especificamente o contexto da linha da coluna calculada.
ISBLANK Verifica se um valor está em branco e retorna TRUE ou FALSE. ISBLANK avalia a linha atual para determinar se Data Anterior tem um valor. Se isso não acontecer, a instrução If define Data Diff em Dias como 1.
LASTDATE Aplicamos o LASTDATE filtro a uma expressão, por exemplo LASTDATE ( 'View Name'[Date] ), para localizar a data mais recente em todas as linhas da tabela e eliminar as linhas que não compartilham a mesma data. Com a tabela de instantâneos gerada por uma visualização do Google Analytics, esse filtro seleciona efetivamente o último dia do período selecionado.
LOOKUPVALUE Retorna o valor em result_columnName para a linha que atende a todos os critérios especificados por search_columnName e search_value.
MAX Devolve o maior valor numérico numa coluna ou entre duas expressões escalares. Aplicamos MAX ( 'View Name'[Date] ), para determinar a data mais recente depois de todos os filtros serem aplicados.