Ir para conteúdo
  • 0

Dividir duas coluna por delimitador e converter em linhas


Bruno Lima de Araujo
Ir para solução Solucionado por Vitor Peralva ,

Pergunta

  • Alunos

Pessoal, bom dia! 
Estou tendo uma dificuldade com um projeto, tenho uma coluna chamada eventos e outra chamado valores eventos como segue a imagem:

image.png.b82e5fdc8078b2b75542b018f65a8de9.png

E preciso dividir essas duas colunas por delimitador  transformando em linhas de tal forma que fique assim como segue na imagem abaixo: os eventos viraram linhas assim como os valores dos eventos também respeitando a ordem, evento 001 com primeiro valor da coluna valores eventos, evento 047 o segundo valor da coluna valores eventos, o evento 221 terceiro valor da coluna valores eventos e por ai vai. 

image.png.3baf1c7ec924a603f1c28976adfdaa41.png

Desde já, muitíssimo obrigado e estou aqui para qualquer dúvidas. Segue também a planilha e o pbix

Dividir as duas colunas em linhas respeitando o delimitador.pbix data.csv

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 1
  • Alunos
  • Solução

Bom Dia, @Bruno Lima de Araujo!

 

Num leitura rápida, imagino que o que queira fazer seria a aplicação deste código com a modificação do arquivo fonte:

 

let
    Fonte = Csv.Document(File.Contents("C:\Users\vitor\Downloads\data.csv"),[Delimiter=",", Columns=3, Encoding=65001, QuoteStyle=QuoteStyle.None]),
    #"Cabeçalhos Promovidos" = Table.PromoteHeaders(Fonte, [PromoteAllScalars=true]),
    #"Personalização Adicionada" = Table.AddColumn(#"Cabeçalhos Promovidos", "Personalizar", each List.Zip( { Text.Split([EVENTOS], ";"), Text.Split([Valores dos Eventos], ";") } )),
    #"Outras Colunas Removidas" = Table.SelectColumns(#"Personalização Adicionada",{"MATRICULA", "Personalizar"}),
    #"Personalizar Expandido" = Table.ExpandListColumn(#"Outras Colunas Removidas", "Personalizar"),
    #"Valores Extraídos" = Table.TransformColumns(#"Personalizar Expandido", {"Personalizar", each Text.Combine(List.Transform(_, Text.From), ";"), type text}),
    #"Dividir Coluna por Delimitador" = Table.SplitColumn(#"Valores Extraídos", "Personalizar", Splitter.SplitTextByDelimiter(";", QuoteStyle.Csv), {"Evento", "Valor"}),
    #"Tipo Alterado com Localidade" = Table.TransformColumnTypes(#"Dividir Coluna por Delimitador", {{"Valor", type number}}, "en-US")
in
    #"Tipo Alterado com Localidade"

 

Espero ter ajudado.

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

  • 0
  • Alunos
17 minutos atrás, Ezequiel Pedreira disse:

Oi @Ezequiel Pedreira, Ainda não seria isso. Nesse caso o evento um está se repetindo para todos os valores dos eventos da matricula 1004. veja que lá na primeira foto eu tenho a coluna da matricula, como  por exemplo a matricula da primeira linha que é a matricula 1004, ai vem a coluna evento que nesse caso tem 30 eventos diferentes separados por ponto e virgula e do lado tem a coluna valores eventos com os 30 valores dos eventos em ordem respectiva, como segue a imagem:
image.png.c767452dcbe49af36bdf0df83ba2fcf7.png

O que preciso é que esses eventos se convertam em linhas juntos com seu respectivo valor do evento de tal forma que o evento 001 na matricula 1004 tenha o valor de 1740,94. O evento 047 com valor 5820,70 e por ai a diante, como tentei simular na segunda imagem lá em cima. Desde já obrigado pela atenção.

Editado por Bruno Lima de Araujo
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
20 minutos atrás, Bruno Lima de Araujo disse:

Oi @Ezequiel Pedreira, Ainda não seria isso. Nesse caso o evento um está se repetindo para todos os valores dos eventos da matricula 1004. veja que lá na primeira foto eu tenho a coluna da matricula, como  por exemplo a matricula da primeira linha que é a matricula 1004, ai vem a coluna evento que nesse caso tem 30 eventos diferentes separados por ponto e virgula e do lado tem a coluna valores eventos com os 30 valores dos eventos em ordem respectiva, como segue a imagem:
image.png.c767452dcbe49af36bdf0df83ba2fcf7.png

O que preciso é que esses eventos se convertam em linhas juntos com seu respectivo valor do evento de tal forma que o evento 001 na matricula 1004 tenha o valor de 1740,94. O evento 047 com valor 5820,70 e por ai a diante, como tentei simular na segunda imagem lá em cima. Desde já obrigado pela atenção.

Entendi, nesse caso você precisa remover as duplicadas da coluna "Eventos".

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...