Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Assuntos relacionados a criação de medidas, fórmulas e funções DAX, relacionamentos etc
Por JulioMonteiro
#54936
Olá!
Minha primeira participação aqui. Procurei se havia alguma questão similar a minha mas não encontrei.

Tenho uma tabela fato com vendas diárias de diversos itens que são segmentados por Grupos. Crei uma medida que calcula a média mensal de vendas:
MédiaMês Vendas = AVERAGEX(VALUES(dCalendario[cAnoMês]);SUM(CUPOM[ValorVenda]) ) ok!

Criei um ranking dessas médias por Grupo
Ranking Grp MedVendas = RANKX(ALL(CUPOM[ESTOQUE.Grupo]);[MédiaMês Vendas];;DESC) ok!

Criei uma medida para acumular as médias:
MédiaM ACC Grp Vendas = CALCULATE([MédiaMês Vendas];TOPN([Ranking Grp MedVendas];ALL(CUPOM[ESTOQUE.Grupo]);[MédiaMês Vendas];DESC)) NÃO OK!

Grupo..........MédiaMês....Rank..........Média ACC
...1...............50000.............1.................50000
...4...............35000.............2.................62000 Esperava 85000

Está sendo calculada a média de todos os itens dos grupos 1 e 4. Preciso somar as médias distintas. Entendo que quando a TOPN saiu para ranking 2, a medida que está sendo acumulada [MédiaMês Vendas] na calculate é uma averagex que estará sendo aplicada nos grupos 1 e 4. Mas não consigo resolver isso.

Desde já agradeço qualquer sugestão. Obrigado!
Por babdallas
#54939
Se for possível, anexa um exemplo com dados fictícios, por favor. Ficará mais fácil de ajudar.
Por JulioMonteiro
#54970
babdallas, fui alterar as consultas na minha base para criar um exemplo como vc pediu e fiz uma lenha danada aqui no power query... :| To tentando resolver...

Sei que o exemplo facilita o entendimento para me ajudar.

Mas a questão é que tenho que acumular os valores para fazer um graf de pareto. Só que esses valores são MÉDIAS.

O meu problema se resume a:
Preciso de:
_________ Media(Vendas grupo A) + Media(Vendas grupo B)
e minha medida está fazendo:
_________ Media(Vendas grupo A + Vendas grupo B)

Estou usando a RANKX. Tudo certo até aqui.
Como disse, uso a seguinte medida para acumular os valores:
MédiaM ACC Grp Vendas = CALCULATE([MédiaMês Vendas];TOPN([Ranking Grp MedVendas];ALL(CUPOM[ESTOQUE.Grupo]);[MédiaMês Vendas];DESC))


Quando a TOPN vai para o ranking = 2 a expressão da CALCULATE, que é uma AVERAGEX (MédiaMês Vendas = AVERAGEX(VALUES(dCalendario[cAnoMês]);SUM(CUPOM[ValorVenda]) ), está fazendo a média de vendas de todos os itens dos grupos rank1 e rank2 como se fossem um só grupo. E o que preciso é que seja somado a média do grupo de rank1 com a média do grupo de rank2.

Essa estrutura funciona perfeito se a expressão da CALCULATE fosse uma soma das vendas de cada grupo. Já pensei e tentei diversas formas mas não estou conseguindo. A solução que vejo seria um estrutura de looping para ir calculando e acumulando as médias em cada interação do ranking.

Talvez eu tenha explicado melhor agora. Vou tentar resolver agora o problema da minha base. O Power Query está sinalizando que tenho que recompilar etapas da minha consulta. E são várias...

Mais uma vez, obrigado.
Por babdallas
#54985
Eu creio que você precisará gerar uma tabela virtual com o ranking das médias, para então conseguir fazer o acumulado de forma adequada.
Por JulioMonteiro
#55079
babdallas, sua dica funcionou depois muito trabalho. A solução até que é simples mas meu problema é que tenho uma tab dimensão Estoque mal definida. Aí tive que criar uma tabela fato de vendas com granularidade mensal e partir dessa criar a tabela virtual para obter o resultado esperado. Tá meio colcha de retalho mas o trabalho é para mim mesmo. Sou empresário e estou, como dizemos aqui em MG, distrinchando meu negócio.
Trabalhei com o excel num nível razoável no passado. Peguei tem 2 semanas o power bi pela primeira vez. Estou achando a ferramenta muito poderosa. E só estou avançando bem a partir dos videos de vcs. Muito bons!!! Parabéns! Vale um queijo... kkk
Breve tentarei participar de um curso com vcs. Parabéns mesmo!
E obrigado.
taí:
MediaVendasGrpACC =
VAR RANKEAR = RANKX(ALLSELECTED(GrpMedMes[TabMed.Grupo]);[MediaVendasGrp];;DESC) RETURN // funfa
CALCULATE(
SUMX(SUMMARIZE(GrpMedMes;GrpMedMes[TabMed.Grupo];"Médias Mensais GRP";AVERAGE(GrpMedMes[VendapGrpMes])); [Médias Mensais GRP])
;TOPN(RANKEAR;ALL(GrpMedMes[TabMed.Grupo]);[MediaVendasGrp];DESC))
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord