Ir para conteúdo
  • 0

Power query [Transformação de Dados] - Supermercado


Pergunta

  • Alunos
 

Olá, pessoal!

Espero que todos estejam bem 😄

Estou com uma dúvida sobre transformação de dados no Power Query. Tenho informações de compras no supermercado que estão em um padrão difícil de formatar. Preciso dividir essas informações nas seguintes colunas: "Produto, Código, Unidade, Vl. Unit, Vl. Total, Data e Local".

Esse padrão está complicado para eu modelar. Se alguém puder ajudar, eu agradeço muito!

Obrigado!


 

Compra_Mercardo.xlsxCompra_Mercardo.xlsxCompra_Mercardo.xlsx

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
Postado (editado)
let
    Fonte = Excel.Workbook(File.Contents("SeuCaminho\Compra_Mercardo.xlsx"), null, true),
    Planilha1_Sheet = Fonte{[Item="Planilha1",Kind="Sheet"]}[Data],
    SelecionaColunas = Table.SelectColumns(Planilha1_Sheet,{"Column1"}),
    Data = SelecionaColunas[Column1]{0},
    Local = SelecionaColunas[Column1]{1},
    Remove2PrimeirasLinhas = Table.Skip(SelecionaColunas, 2),
    AdicionaColunaQuantidade = Table.AddColumn(Remove2PrimeirasLinhas, "QuantidadeValor", each if Text.Start([Column1], 4) = "Qtde" then [Column1] else null),
    PreencheParaCima = Table.FillUp(AdicionaColunaQuantidade,{"QuantidadeValor"}),
    DivideColuna = Table.SplitColumn(PreencheParaCima, "QuantidadeValor", Splitter.SplitTextByDelimiter(":", QuoteStyle.Csv), {"Quantidade.1", "Quantidade", "Quantidade.3", "ValorUnitario"}),
    RemoveColunas = Table.RemoveColumns(DivideColuna,{"Quantidade.1", "Quantidade.3"}),
    LimpaCaracteres = Table.TransformColumns(RemoveColunas,{{"Quantidade", each Text.Clean(Text.Trim(_)), type text}}),
    CorrigeQuantidade = Table.TransformColumns(LimpaCaracteres, {{"Quantidade", each Number.From(Text.BeforeDelimiter(_, "UN")), type number}}),
    SelecionaLinhasProdutos = Table.AlternateRows(CorrigeQuantidade, 1, 1, 1),
    DivideColunaNomeProdutoECodigo = Table.SplitColumn(SelecionaLinhasProdutos, "Column1", Splitter.SplitTextByDelimiter("(Código:", QuoteStyle.Csv), {"Produto", "Codigo"}),
    CorrigeCodigoProduto = Table.TransformColumns(DivideColunaNomeProdutoECodigo, {{"Codigo", each Text.BeforeDelimiter(_, " )"), type text}}),
    LimpaCaracteresNomeProduto = Table.TransformColumns(CorrigeCodigoProduto,{{"Produto", each Text.Clean(Text.Trim(_)), type text}}),
    AdicionaColunaLocal = Table.AddColumn(LimpaCaracteresNomeProduto, "Local", each Local, type text),
    AdicionaColunaData = Table.AddColumn(AdicionaColunaLocal, "Data", each Data, type date)
in
    AdicionaColunaData

 

Não fiz com a coluna de Valor total, pois isso vc pode fazer com a seguinte medida:

Valor total = 
    SUMX(
        fVendas,
        fVendas[Quantidade] * fVendas[ValorUnitario]
    )

 

202407-6_TratarDadosSupermercado.pbix

Editado por Bruno Abdalla de Souza
  • 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...