Alunos Tiago Bocardi Postado Abril 14, 2023 Alunos Compartilhar Postado Abril 14, 2023 Ola pessoal, tenho uma tabela com a primeira linha é o ano e a segunda é o mes gostaria de unificar as duas, ja tentei pivotar porem são mais de 1000 linhas e o power query nao suporta para converter em colunas, alguem conhece alguma solução Link para o comentário Compartilhar em outros sites More sharing options...
1 Alunos Solução Vitor Peralva Postado Abril 19, 2023 Alunos Solução Compartilhar Postado Abril 19, 2023 Bom Dia, @Tiago Bocardi! Ontem foi corrido por conta das crianças terem tido febre e, por conta disso, não gravei o vídeo. Mas, fiz aqui rapidamente uma solução para que possa desenrolar o seu problema: let Fonte = Excel.Workbook(File.Contents("C:\Users\vitor\Downloads\TESTE TOPO CLIENTE E FORNECEDOR (QTD_CMV_FAT_REC).xlsx"), null, true), Planilha1_Sheet = Fonte{[Item="Planilha1",Kind="Sheet"]}[Data], Base = Planilha1_Sheet, Personalizar1 = Table.FirstN(Base, 3), #"Tabela Transposta" = Table.Transpose(Personalizar1), #"Preenchido Abaixo" = Table.FillDown(#"Tabela Transposta",{"Column1"}), #"Personalização Adicionada" = Table.AddColumn(#"Preenchido Abaixo", "Personalizar", each if [Column1] = null then [Column3] else [Column1] & "|" & [Column3] & "/" & [Column2]), #"Outras Colunas Removidas" = Table.SelectColumns(#"Personalização Adicionada",{"Personalizar"}), TopoBase = Table.Transpose(#"Outras Colunas Removidas"), Personalizar2 = Table.Combine({TopoBase, Table.Skip(Base, 3)}), #"Cabeçalhos Promovidos" = Table.PromoteHeaders(Personalizar2, [PromoteAllScalars=true]), #"Outras Colunas Não Dinâmicas" = Table.UnpivotOtherColumns(#"Cabeçalhos Promovidos", {"UNEG_EMPRESA", "CNPJ", "CLIENTE", "DS_GRUPOECONOMICO", "REDE", "SUBGRUPO"}, "Atributo", "Valor"), #"Dividir Coluna por Delimitador" = Table.SplitColumn(#"Outras Colunas Não Dinâmicas", "Atributo", Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv), {"Métrica", "Referência"}) in #"Dividir Coluna por Delimitador" Só alterar a fonte e fazer as transformações adicionais que julgar necessárias. Só observe que na verdade, você tem 3 cabeçalhos, por conta das métricas. Como, se trata de uma tabela que cresce para a direita, o que não é ideal, procurei fazer de tal forma que continue funcionando mesmo com o crescimento da tabela para a direita. Espero ter ajudado. Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Vitor Peralva Postado Abril 14, 2023 Alunos Compartilhar Postado Abril 14, 2023 Boa Noite, @Tiago Bocardi! Você pode resolver da seguinte maneira: 1) Renomeie a etapa atual com um nome simples, sem espaços ou caracteres especiais, exemplo, Base. 2) Depois, mantenha somente as 2 primeiras linhas e faça as transformações até que tenha todas únidas numa única coluna; 3) Renomeie a última etapa que tenha a linha pronta, por exemplo, TopoBase, e adicione uma nova etapa, clicando no fx, por exemplo, e combine da seguinte maneira: = Table.Combine({TopoBase, Table.Skip(Base, 2)}) Obs.: A etapa TopoBase deve ter os mesmos nomes de colunas (Column1, Column2, ...) para que as informações fiquem uma embaixo da outra. Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Tiago Bocardi Postado Abril 17, 2023 Autor Alunos Compartilhar Postado Abril 17, 2023 Em 14/04/2023 em 18:19, Vitor Peralva disse: Boa Noite, @Tiago Bocardi! Você pode resolver da seguinte maneira: 1) Renomeie a etapa atual com um nome simples, sem espaços ou caracteres especiais, exemplo, Base. 2) Depois, mantenha somente as 2 primeiras linhas e faça as transformações até que tenha todas únidas numa única coluna; 3) Renomeie a última etapa que tenha a linha pronta, por exemplo, TopoBase, e adicione uma nova etapa, clicando no fx, por exemplo, e combine da seguinte maneira: = Table.Combine({TopoBase, Table.Skip(Base, 2)}) Obs.: A etapa TopoBase deve ter os mesmos nomes de colunas (Column1, Column2, ...) para que as informações fiquem uma embaixo da outra. Professor muito Obrigado, mas não entendi a ultima etapa, como criar uma etapa topa como essa funcção de table.combine? e na primeira etapa eu filtrei as duas primeiras linhas conforme voce orientou, e como faço para mostrar todos os dados agora? Editor avançado: let Fonte = Excel.Workbook(File.Contents("D:\25 - Aramis\Base de dados\vendas aramis PRODUTO (QTD_CMV_FAT_REC)\vendas aramis PRODUTO (QTD_CMV_FAT_REC).xlsx"), null, true), Planilha1_Sheet = Fonte{[Item="Planilha1",Kind="Sheet"]}[Data], #"Cabeçalhos Promovidos" = Table.PromoteHeaders(Planilha1_Sheet, [PromoteAllScalars=true]), Base = Table.TransformColumnTypes(#"Cabeçalhos Promovidos",{{"Column1", type text}, {"Column2", type text}, {"Column3", type text}, {"Column4", type text}, {"Column5", type text}, {"UN Faturado", type any}, {"Column7", type any}, {"Column8", type any}, {"Column9", type any}, {"Column10", type any}, {"Column11", type any}, {"Column12", type any}, {"Column13", type any}, {"Column14", type any}, {"Column15", type any}, {"Column16", type any}, {"Column17", type any}, {"Column18", type any}, {"Column19", type any}, {"Column20", type any}, {"Column21", type any}, {"Column22", type any}, {"Column23", type any}, {"Column24", type any}, {"Column25", type any}, {"Column26", type any}, {"Column27", type any}, {"Column28", type any}, {"Column29", type any}, {"Column30", type any}, {"Column31", type any}, {"Column32", type any}, {"CMV", type any}, {"Column34", type any}, {"Column35", type any}, {"Column36", type any}, {"Column37", type any}, {"Column38", type any}, {"Column39", type any}, {"Column40", type any}, {"Column41", type any}, {"Column42", type any}, {"Column43", type any}, {"Column44", type any}, {"Column45", type any}, {"Column46", type any}, {"Column47", type any}, {"Column48", type any}, {"Column49", type any}, {"Column50", type any}, {"Column51", type any}, {"Column52", type any}, {"Column53", type any}, {"Column54", type any}, {"Column55", type any}, {"Column56", type any}, {"Column57", type any}, {"Column58", type any}, {"Column59", type any}, {"Vlr Receita Liquida", type any}, {"Column61", type any}, {"Column62", type any}, {"Column63", type any}, {"Column64", type any}, {"Column65", type any}, {"Column66", type any}, {"Column67", type any}, {"Column68", type any}, {"Column69", type any}, {"Column70", type any}, {"Column71", type any}, {"Column72", type any}, {"Column73", type any}, {"Column74", type any}, {"Column75", type any}, {"Column76", type any}, {"Column77", type any}, {"Column78", type any}, {"Column79", type any}, {"Column80", type any}, {"Column81", type any}, {"Column82", type any}, {"Column83", type any}, {"Column84", type any}, {"Column85", type any}, {"Column86", type any}, {"Vlr Faturado Líquido", type any}, {"Column88", type any}, {"Column89", type any}, {"Column90", type any}, {"Column91", type any}, {"Column92", type any}, {"Column93", type any}, {"Column94", type any}, {"Column95", type any}, {"Column96", type any}, {"Column97", type any}, {"Column98", type any}, {"Column99", type any}, {"Column100", type any}, {"Column101", type any}, {"Column102", type any}, {"Column103", type any}, {"Column104", type any}, {"Column105", type any}, {"Column106", type any}, {"Column107", type any}, {"Column108", type any}, {"Column109", type any}, {"Column110", type any}, {"Column111", type any}, {"Column112", type any}, {"Column113", type any}}), #"Linhas Filtradas" = Table.SelectRows(Base, each ([UN Faturado] = "2021" or [UN Faturado] = "janeiro")), #"Tabela Transposta" = Table.Transpose(#"Linhas Filtradas"), #"Coluna Mesclada Inserida" = Table.AddColumn(#"Tabela Transposta", "Mês/Ano", each Text.Combine({Text.Proper([Column2]), "/", [Column1]}), type text), TopoBase = Table.Transpose(#"Coluna Mesclada Inserida") in TopoBase Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Vitor Peralva Postado Abril 17, 2023 Alunos Compartilhar Postado Abril 17, 2023 Boa Tarde, @Tiago Bocardi! Será que poderia disponibilizar o arquivo ou uma amostra dele? Aí gravo um vídeo para o meu canal explicando como resolver este problema e você já tem o passo a passo. Sobre a pergunta: O Table.Combine vai combinar duas consultas, que, no caso, seriam esta parte do cabeçalho e as demais linhas da tabela original sem estas 2 primeiras linhas. Depois que você ficou com as 2 primeiras linhas, deve tratá-las de modo a se tornarem uma única linha. É que sem conhecer os dados, fica mais difícil definir um formato adequado. Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Tiago Bocardi Postado Abril 17, 2023 Autor Alunos Compartilhar Postado Abril 17, 2023 sim, segue o arquivo esta de onde eu parei. testes topo linha.pbix Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Vitor Peralva Postado Abril 18, 2023 Alunos Compartilhar Postado Abril 18, 2023 Bom Dia, @Tiago Bocardi! Quando me refiro ao arquivo, digo o xlsx. Com o PBIX consigo vê o seu código, mas não consigo manipular os dados, já que não tenho o arquivo fonte e as visualizações quebram. 1 Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Tiago Bocardi Postado Abril 18, 2023 Autor Alunos Compartilhar Postado Abril 18, 2023 2 horas atrás, Vitor Peralva disse: Bom Dia, @Tiago Bocardi! Quando me refiro ao arquivo, digo o xlsx. Com o PBIX consigo vê o seu código, mas não consigo manipular os dados, já que não tenho o arquivo fonte e as visualizações quebram. Desculpe faltou o arquivo. Segue anexo. TESTE TOPO CLIENTE E FORNECEDOR (QTD_CMV_FAT_REC).xlsx Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Tiago Bocardi Postado Abril 19, 2023 Autor Alunos Compartilhar Postado Abril 19, 2023 1 hora atrás, Vitor Peralva disse: Bom Dia, @Tiago Bocardi! Ontem foi corrido por conta das crianças terem tido febre e, por conta disso, não gravei o vídeo. Mas, fiz aqui rapidamente uma solução para que possa desenrolar o seu problema: Excelente, obrigado professor resolver aqui, espero que suas crianças fiquem bem logo!!! abçs let Fonte = Excel.Workbook(File.Contents("C:\Users\vitor\Downloads\TESTE TOPO CLIENTE E FORNECEDOR (QTD_CMV_FAT_REC).xlsx"), null, true), Planilha1_Sheet = Fonte{[Item="Planilha1",Kind="Sheet"]}[Data], Base = Planilha1_Sheet, Personalizar1 = Table.FirstN(Base, 3), #"Tabela Transposta" = Table.Transpose(Personalizar1), #"Preenchido Abaixo" = Table.FillDown(#"Tabela Transposta",{"Column1"}), #"Personalização Adicionada" = Table.AddColumn(#"Preenchido Abaixo", "Personalizar", each if [Column1] = null then [Column3] else [Column1] & "|" & [Column3] & "/" & [Column2]), #"Outras Colunas Removidas" = Table.SelectColumns(#"Personalização Adicionada",{"Personalizar"}), TopoBase = Table.Transpose(#"Outras Colunas Removidas"), Personalizar2 = Table.Combine({TopoBase, Table.Skip(Base, 3)}), #"Cabeçalhos Promovidos" = Table.PromoteHeaders(Personalizar2, [PromoteAllScalars=true]), #"Outras Colunas Não Dinâmicas" = Table.UnpivotOtherColumns(#"Cabeçalhos Promovidos", {"UNEG_EMPRESA", "CNPJ", "CLIENTE", "DS_GRUPOECONOMICO", "REDE", "SUBGRUPO"}, "Atributo", "Valor"), #"Dividir Coluna por Delimitador" = Table.SplitColumn(#"Outras Colunas Não Dinâmicas", "Atributo", Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv), {"Métrica", "Referência"}) in #"Dividir Coluna por Delimitador" Só alterar a fonte e fazer as transformações adicionais que julgar necessárias. Só observe que na verdade, você tem 3 cabeçalhos, por conta das métricas. Como, se trata de uma tabela que cresce para a direita, o que não é ideal, procurei fazer de tal forma que continue funcionando mesmo com o crescimento da tabela para a direita. Espero ter ajudado. Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Tiago Bocardi
Ola pessoal, tenho uma tabela com a primeira linha é o ano e a segunda é o mes gostaria de unificar as duas, ja tentei pivotar porem são mais de 1000 linhas e o power query nao suporta para converter em colunas, alguem conhece alguma solução
Link para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados
Faça login para comentar
Você vai ser capaz de deixar um comentário após fazer o login
Entrar Agora