1
resposta

Utilizar linha anterior da COLUNA criada

Oi Pessoal.

Estou com uma dúvida no Power Query com a linguagem M.

O problema é o seguinte: Como que faço para usar a linha anterior de uma coluna calculada ? No exemplo, o 'Ordem Tarefa-pai' está vendo se a Tarefa-pai da linha anterior é igual ao da linha atual. Caso seja diferente, soma 1 ao valor da coluna calculada 'Ordem Tarefa-pai' no passo anterior, caso seja igual, puxa o valor da coluna calculada 'Ordem Tarefa-pai' no passo anterior.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Estou fazendo dessa forma:

Passo 1: Criação do 'Ordem Original', começando do zero

Table.AddIndexColumn(#"Tipo Alterado", "Ordem Original", 0, 1, Int64.Type)

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Passo 2: Criação do Ordem Tarefa-pai

= Table.AddColumn(#"Índice Adicionado", "Ordem Tarefa-pai", 
each if [Ordem Original] = 0 then 0 
else if #"Índice Adicionado"{[Ordem Original]-1}[Tarefa pai] <> #"Índice Adicionado"{[Ordem Original]}[Tarefa pai] then [Ordem Original]+1
else null)

Passo 3: Preenchimento abaixo

= Table.FillDown(#"Coluna Condicional Adicionada",{"Ordem Tarefa-pai"})
1 resposta

Oi, Gustavo. Como você está?

Peço desculpas pela demora em te responder.

A função Table.FillDown, que retorna o valor anterior de uma célula especificada, pode ser uma boa alternativa para solucionar seu problema.

O código para o seu passo 3 ficaria mais ou menos assim:

= Table.FillDown(#"Coluna Condicional Adicionada",{"Ordem Tarefa-pai"})

Essa função irá preencher os valores abaixo da coluna "Ordem Tarefa-pai" com os valores da linha anterior, até encontrar um valor diferente.

Vou deixar aqui o link da documentação da função para que você possa explorar melhor e fazer os testes necessários:

A página está em inglês, mas, caso não se sinta confortável com esse idioma, traduza clicando em qualquer lugar da página com o botão direito do mouse e selecionando "Traduzir para o português".

Espero que seja um bom ponto de partida.

Abraços!