Ir para conteúdo
  • 0

% Acumulado por Grupo e produto no Query


Júlio Henrique Sielski
Ir para solução Solucionado por Joao Raulino ,

Pergunta

  • Alunos

Olá tudo bem?

 

Estou com uma necessidade de realizar o % acumulado de uma lista de produtos e grupos, por DAX consido sem problemas, porém esta dando estouro de mémoria com frequencia... portanto partir para o Query.

 

Apenas produtos, está tranquilo de conseguir o resultado, porém eu preciso saber o acumulado do produto dentro do seu grupo...
Na imagem abaixo vejam nas primeiras linhas dos produtos do grupo 7 o acumulado retornou certinho... porém quando vou para o Grupo 17 na linha13 ele esta retornando o % da linha 1

image.png.1f588a3bc9e456dc5d9d6e3c3c05b4ce.png

 

Para resolve isso tentei agrupar novamente esta batela para ai sim fazer a List.Sum da coluna Divisão...

Novamente o 1º deu certinho...

image.png.8d204340ad45f8a73f8ca0afacfa3529.png

Já os demais continuam pegando o valor que eu não quero.

image.png.9d4e03d759a5e073c9256e0d7a1a3425.png

 

Em anexo segue o .pbix com oque estou tentando fazer.

Desde já agradeço a todos que derem atenção.

Ajuda Acumulado Query.pbix

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

Suave @Júlio Henrique Sielski?

Você estava no caminho certo, só faltou um pequeno ajuste na função que cria a coluna "Percentual acumulado" para definir corretamente em qual linha começar a acumulação.

Adaptei o teu arquivo com uma base fictícia só para exemplificar. Tenta usar o código abaixo na tua query e vê se retorna o que você precisa:

Citar

let
    Fonte = #"Base Faturamento",
    #"Consultas Mescladas" = Table.NestedJoin(Fonte, {"Grupo"}, #"Faturamento Grupo", {"Grupo"}, "Faturamento Grupo", JoinKind.LeftOuter),
    #"Faturamento Grupo Expandido" = Table.ExpandTableColumn(#"Consultas Mescladas", "Faturamento Grupo", {"Faturamento geral"}, {"Faturamento geral"}),
    #"Divisão Inserida" = Table.AddColumn(#"Faturamento Grupo Expandido", "Divisão", each [Faturado] / [Faturamento geral], Percentage.Type),
    #"Linhas Classificadas" = Table.Sort(#"Divisão Inserida",{{"Grupo", Order.Descending}, {"Divisão", Order.Descending}}),
    #"Adicionou IndexGeral" = Table.AddIndexColumn(#"Linhas Classificadas", "IndexGeral", 0, 1, Int64.Type),
    #"Adicionou IndexIntraGrupo" = Table.ExpandTableColumn(Table.TransformColumns(Table.Group(#"Adicionou IndexGeral", {"Grupo"}, {{"AllRows", each _, type table}}), {"AllRows", each Table.AddIndexColumn(_, "IndexIntraGrupo", 0, 1)}), "AllRows", {"Produto", "Faturado", "Faturamento geral", "Divisão", "IndexGeral", "IndexIntraGrupo"}),
    #"Adicionou IndexInicioGrupo" = Table.AddColumn(#"Adicionou IndexIntraGrupo", "IndexInicioGrupo", each Table.SelectRows(Table.Buffer(#"Adicionou IndexIntraGrupo"), (inner) => inner[Grupo] = [Grupo])[IndexGeral]{0}, type any),
    #">>>>> Percentual acumulado" = Table.AddColumn(#"Adicionou IndexInicioGrupo", "Percentual acumulado", each List.Sum(List.Range(#"Adicionou IndexInicioGrupo"[Divisão],[IndexInicioGrupo],[IndexIntraGrupo]+1))),
    #"Removeu Colunas" = Table.RemoveColumns(#">>>>> Percentual acumulado",{"IndexGeral", "IndexIntraGrupo", "IndexInicioGrupo"}),
    #"Tipo Alterado" = Table.TransformColumnTypes(#"Removeu Colunas",{{"Grupo", type text}, {"Produto", type text}, {"Faturado", Currency.Type}, {"Faturamento geral", Currency.Type}, {"Divisão", Percentage.Type}, {"Percentual acumulado", Percentage.Type}})
in
    #"Tipo Alterado"

image.png.07ef5b0f6c6ac158ab6182faace0798e.png

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

Abs!

  • Thanks 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
31 minutos atrás, Joao Raulino disse:

Suave @Júlio Henrique Sielski?

Você estava no caminho certo, só faltou um pequeno ajuste na função que cria a coluna "Percentual acumulado" para definir corretamente em qual linha começar a acumulação.

Adaptei o teu arquivo com uma base fictícia só para exemplificar. Tenta usar o código abaixo na tua query e vê se retorna o que você precisa:

image.png.07ef5b0f6c6ac158ab6182faace0798e.png

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

Abs!

Muito obrigado, ficou perfeito o resultado. Agora vou replicar no meu arquivo de produção e ver se vai dar boa hehe

 

image.png.bbe016e13706aa1378ec80ac800fb179.png

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