Ir para conteúdo
  • 0

Agrupar e pivotar tabela


Rafael Mariano Neto
Ir para solução Solucionado por Henrique Merola Faria ,

Pergunta

  • Alunos

Tenho uma tabela que possui duas colunas, a primeira delas são as colunas e a segunda delas sao os valores correspondentes a cada coluna.
Preciso que a linhas da primeira coluna se tornem colunas, porém, tem 31 linhas que são padrões para todas as outras, ou seja, as primeiras 31 linhas se repetem várias vezes por trazerem a mesma imformação.
image.png.aa2d59752303a825b88d06a0937f887f.png

Como vocês podem ver, a partir da linha 32, já começa a se repetirem os valores da coluna 1.

Gostaria de saber se é possível que eu agrupe essas linhas da coluna 1, e consequentemente jogue os valores das linhas agrupadas nas colunas, como por exemplo:
Da linha 1 a 31, tenho uma segunda coluna que são os valores. Depois até aparecer a próxima linha que seria a linha que contém o nome "Cliente", os valores da segunda coluna se tornem uma terceira, e assim por diante.

Preciso disso para poder pivotar essa primeira coluna, caso eu tente pivotar nessa situação, são criadas mais de 1000 colunas, justamente porque não há esse agrupamento onde os valores das linhas são iguais na primeira coluna.

 

Se algúem já tiver passado por isso me dê uma luz por favor!

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

Boa tarde @Rafael Mariano Neto
Um dos motivos para não conseguir pivotar é que vai dar erro no final do processo, por ter colunas de mesmo nome repetidas, com valores diferentes:
Cliente com um código e Cliente com um nome, idem para Cientista, Header, etc. 
Teria que trocar esses nomes no início do processo de carga.

Feito isso, você precisa adicionar uma coluna de índice, selecionar somente um como chave para cada agrupamento, replicar para as demais linhas do agrupamento e pivotar.

O micro exemplo anexo faz isso, veja lá que é mais simples fazer que explicar...rsrs
No caso, já parti com os campos duplicados corrigidos.

Começamos com essa fonte:

image.png.f7f6512737eb48206664e00e1935ff13.png

e chegamos nesta tabela final:
- a coluna ID é o índice que foi incluído, identificando cada linha.

image.png.2e90cac66b38dc4f0242c441017d1101.png

Transpor Linhas com Repeticao.pbix

  • Like 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Vou postar um código aqui de exemplo que pode te ajudar 

 

let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45Wci1LzSuxUvBz9HVViIiIUIrViVZySSxJtVKoqIAgsJBPfnJiSWZ+HlClf7iHa5ArWDQ0yMdKoby8XC8jUy85PxcshmxgZGQkkoGVlRCEZmCwv6+rRzimkak5OfkQU2MB", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Column1 = _t]), Custom1 = Table.FromRecords(Table.Group(Source,"Column1",{"n",each Record.FromTable(#table({"Name","Value"},List.Transform([Column1],each Splitter.SplitTextByDelimiter(": ")(_))))},0,(x,y)=>Byte.From(Text.StartsWith(y,"Event")))[n]) in Custom1

 

  • Like 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
2 horas atrás, Henrique Merola Faria disse:

Boa tarde @Rafael Mariano Neto
Um dos motivos para não conseguir pivotar é que vai dar erro no final do processo, por ter colunas de mesmo nome repetidas, com valores diferentes:
Cliente com um código e Cliente com um nome, idem para Cientista, Header, etc. 
Teria que trocar esses nomes no início do processo de carga.

Feito isso, você precisa adicionar uma coluna de índice, selecionar somente um como chave para cada agrupamento, replicar para as demais linhas do agrupamento e pivotar.

O micro exemplo anexo faz isso, veja lá que é mais simples fazer que explicar...rsrs
No caso, já parti com os campos duplicados corrigidos.

Começamos com essa fonte:

image.png.f7f6512737eb48206664e00e1935ff13.png

e chegamos nesta tabela final:
- a coluna ID é o índice que foi incluído, identificando cada linha.

image.png.2e90cac66b38dc4f0242c441017d1101.png

Transpor Linhas com Repeticao.pbix 28.13 kB · 1 download

Muito obrigado! Renomeei as linhas iguais e consegui! Deu certo demais

Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...