Ir para conteúdo
  • 0

Dúvida em Transpor Tabela


Cristiano R Alonso

Pergunta

  • Alunos

Bom dia, primeiramente, desculpe-me se esse tópico estiver no local errado,  essa é minha primeira vez que uso o Forum e estou iniciando no PB e preciso de ajuda nessa dúvida em TRANSPOR uma tabela.

No caso há 2 colunas por lojas que precisam ficar na mesma linha, formando a sequencia de colunas: LOJA / GRUPO / CÓDIGO / QUANTIA / VALOR

Agradeço qualquer ajuda.

Lojas.xlsx

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 1
  • Alunos

Segue o código M comentado:

 

let
    Fonte = Excel.CurrentWorkbook(){[Name = "RelatorioMateriasiMultiLojaPorP"]}[Content],
    // Preencher colunas para cima para que conseguir promover as colunas Grupo, Código e Material
    #"Preenchido Acima" = Table.FillUp(Fonte, Table.ColumnNames(Fonte)),
    #"Cabeçalhos Promovidos" = Table.PromoteHeaders(#"Preenchido Acima", [PromoteAllScalars = true]),
    // Transformar colunas em linha
    #"Outras Colunas Não Dinâmicas" = Table.UnpivotOtherColumns(
        #"Cabeçalhos Promovidos", {"Grupo", "Código", "Material"}, "Loja", "Valor"
    ),
    // Todas as linhas que estão com o texto "Valor(R$)" eram para ser continuação da Loja
    // Transformar os textos que contém a "Valor(R$)" para nulo, podendo assim preencher para baixo
    #"Transformar Coluna" = Table.TransformColumns(
        #"Outras Colunas Não Dinâmicas", {{"Loja", each if Text.Contains(_, "Valor(R$)") then null else _}}
    ),
    // Adicionar coluna que servirá como chave do que é valor e quantidade
    #"Adicionar Medida" = Table.AddColumn(
        #"Transformar Coluna", "Medida", each if [Loja] = null then "Valor(R$)" else "Qtde", type text
    ),
    // Preencher para baixo a loja
    #"Preenchido Abaixo" = Table.FillDown(#"Adicionar Medida", {"Loja"}),
    // As linhas da coluna valor que não são números são lixo na base
    // Transformar elas em números para causar um erro intencional, podendo remove-las
    #"Tipar Valores" = Table.TransformColumnTypes(#"Preenchido Abaixo", {{"Valor", type number}}),
    #"Erros Removidos" = Table.RemoveRowsWithErrors(#"Tipar Valores", {"Valor"}),
    // Transpor tabela
    #"Coluna em pivô" = Table.Pivot(
        #"Erros Removidos", List.Distinct(#"Erros Removidos"[Medida]), "Medida", "Valor", List.Sum
    ),
    #"Tipo Alterado" = Table.TransformColumnTypes(
        #"Coluna em pivô",
        {{"Grupo", type text}, {"Código", Int64.Type}, {"Material", type text}, {"Loja", type text}}
    )
in
    #"Tipo Alterado"

 

  • Like 1
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...