Ir para conteúdo
  • 0

Relatórios em Pivot (arquivo .xlsx)


Cristiano R Alonso
Ir para solução Solucionado por Joao Raulino ,

Pergunta

  • Alunos

Olá! É muito comum nesses sistemas ERPs de restaurantes, pizzarias e outros, possuírem opções de exportação de dados em um relatório que possui uma estrutura que se parece uma Planilha dinâmca do Excel. Eles acabam chamando de "Relatório em Pivot".

Estou com dificuldade de realizar as etapas aplicadas no Power Query para a planilha de exemplo em anexo, extraída do módulo financeiro de uma empresa.

Preciso das colunas na seguinte ordem: Data / Unidade / Tipo de Venda (Mesa ou Entrega) / Pessoas / Ticket / Fat.Total

Esse relatório é sempre extraído diáriamente do período Data Início: 01/01/2024 até a data atual.

Tenho dificuldades em entender como realizar a transformação de colunas em linhas nestes casos, onde temos tantas colunas apresentadas na horizontal.

Grato pela ajuda e tempo de algum dos colegas. 

Financeiro_Pivot.xlsx

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 1
  • Alunos
  • Solução
Postado (editado)

Suave @Cristiano R Alonso?

Você vai conseguir esse resultado usando uma mistura de Transpose/Unpivot/Pivot das tuas colunas:

image.png.817af34e0048e844d23afab410699718.png

Para isso basta usar o código abaixo:

Citar

let
    Source = Excel.Workbook(File.Contents("C:\Users\JOAO\Downloads\Financeiro_Pivot.xlsx"), null, true),
    Sheet_Sheet = Source{[Item="Sheet",Kind="Sheet"]}[Data],
    TransposedTable = Table.Transpose(Sheet_Sheet),
    FilledDown = Table.FillDown(TransposedTable,{"Column1", "Column2"}),
    PromotedHeaders = Table.PromoteHeaders(FilledDown, [PromoteAllScalars=true]),
    UnpivotedOtherColumns = Table.UnpivotOtherColumns(PromotedHeaders, {"Column1", "Column2", "Column3"}, "Attribute", "Value"),
    FilteredUnidade = Table.SelectRows(UnpivotedOtherColumns, each not Text.Contains([Column1], "Total")),
    FilteredDate = Table.SelectRows(FilteredUnidade, each ([Attribute] <> "Grande Total")),
    PivotedColumn = Table.Pivot(FilteredDate, List.Distinct(FilteredDate[Column3]), "Column3", "Value"),
    RenamedColumns = Table.RenameColumns(PivotedColumn,{{"Column1", "Unidade"}, {"Column2", "Tipo de Venda"}, {"Attribute", "Data"}}),
    ReorderedColumns = Table.ReorderColumns(RenamedColumns,{"Data", "Unidade", "Tipo de Venda", "Pessoas", "Ticket", "Fat.Total"}),
    ChangedType = Table.TransformColumnTypes(ReorderedColumns,{{"Unidade", type text}, {"Tipo de Venda", type text}, {"Data", type date}, {"Pessoas", Int64.Type}, {"Ticket", type number}, {"Fat.Total", type number}})
in
    ChangedType

Se essa resposta te ajudou, não esquece de marcar como melhor solução 😉

Abs!

Editado por Joao Raulino
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...