Ir para conteúdo
  • 0

RANKX + ACUMULADO (LENTIDÃO EXTREMA)


champanjonata
Ir para solução Solucionado por Tiago Craici ,

Pergunta

  • Membros

Olá pessoal, tudo bem?

Estou tentando criar um pareto e até agora deu tudo certo, porém ao realizar o acumulado por ranking simplesmente não carrega. Deixei atualizando em uma tabela com nome e acumulado e atingiu 28GB de RAM e aí desisti....

Seguem as medidas que estou utilizando:

Rankx:
 

Rank PDD Cedentes =
 
RANKX(
    ALL(d_cedentes),
    [Valor PDD]
)


Acumulado:

Pdd Acumulado Cedentes =
 
var vRankingAtual = [Rank PDD Cedentes]
 
return
 
CALCULATE(
    [Valor PDD],
    FILTER(
        ALLSELECTED(d_cedentes), [Rank PDD Cedentes] <= vRankingAtual
    )
)

Algumas observações:

Já tentei acumulado assim:

Pdd Acumulado Cedentes =
 
CALCULATE(
    [Valor PDD],
    TOPN(
        [Rank PDD Cedentes],
        ALL(d_cedentes), [Rank PDD Cedentes], ASC
    )
)

E o resultado é o mesmo (lentidão e não carrega)

Minhas tabelas são relativamente pequenas sendo:
fato: 2.4M

dimensão (d_cedentes): 334 MIL

Meu modelo está certinho (estrela) e tudo relacionado corretamente.

Detalhe mais importante: já criei uma tabela resumida (agrupada) da fato ficando com 82 MIL linhas apenas e mesmo assim ao jogar a medida acumulada para a tabela não carrega por nada.

Sendo assim estou fazendo algo errado ou se tiver como otimizar.

 
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 1
  • Membros
  • Solução

Boa tarde @champanjonata

Realmente o acumulado no Power BI com grande base ele pena mesmo. 
Veja a medida abaixo se vai ganhar performance no seu projeto:



Acumulado  =
VAR faturamentototal =
    CALCULATE ( [Faturamento], ALLSELECTED ( dClientes ) )
VAR faturamentoAtual = [Faturamento]
VAR tabela =
    SUMMARIZE (
        ALLSELECTED ( fFaturamento ),
        dClientes[CLIENTE],
        "Vendas", [Faturamento]
    )
VAR faturamentoacumulado =
    IF (
        [Faturamento] > 0,
        SUMX ( FILTER ( tabela, [Vendas] >= faturamentoAtual ), [Vendas] )
    )
RETURN
    faturamentoacumulado





Créditos ao mestre @Rodrigo R1


Sucesso! 

  • Obrigado(a) 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros
40 minutos atrás, Tiago Craici disse:

Boa tarde @champanjonata

Realmente o acumulado no Power BI com grande base ele pena mesmo. 
Veja a medida abaixo se vai ganhar performance no seu projeto:



Acumulado  =
VAR faturamentototal =
    CALCULATE ( [Faturamento], ALLSELECTED ( dClientes ) )
VAR faturamentoAtual = [Faturamento]
VAR tabela =
    SUMMARIZE (
        ALLSELECTED ( fFaturamento ),
        dClientes[CLIENTE],
        "Vendas", [Faturamento]
    )
VAR faturamentoacumulado =
    IF (
        [Faturamento] > 0,
        SUMX ( FILTER ( tabela, [Vendas] >= faturamentoAtual ), [Vendas] )
    )
RETURN
    faturamentoacumulado





Créditos ao mestre @Rodrigo R1


Sucesso! 

Caraca @Tiago Craici e @Rodrigo R1 melhorou 10000% valeu demais. Aproveito aqui para mencionar a @Claudia Passos que fez uma postagem semelhante ao meu problema, dê uma olhada que com certeza vai resolver pra você também.

 

Valeu pessoal!

Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros
1 minuto atrás, champanjonata disse:

Caraca @Tiago Craici e @Rodrigo R1 melhorou 10000% valeu demais. Aproveito aqui para mencionar a @Claudia Passos que fez uma postagem semelhante ao meu problema, dê uma olhada que com certeza vai resolver pra você também.

 

Valeu pessoal!

Maravilha @champanjonata

Favor marcar a solução que atendeu seu objetivo... Você marcou a sua resposta eheeheh, dessa forma fica mais fácil para os demais quando pesquisarem aqui no fórum acharem a resposta correta. Obrigado:
image.png.58af7a3fff49535ed64bc49615d3b25c.png


Pra cima! Sucesso 🚀
 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros

Bom demais que achou sua resposta @champanjonata....

O @Tiago Craici é fera demais....

Depois só ajusta ali a resposta...

Acho que você se confundiu ao escolher a resposta que solucionou sua dúvida.

Isso é muito importante para reconhecer o colega que te ajudou e tbm para facilitar aos demais membros a encontram a resposta, em dúvidas semelhantes a sua.

Grande abraço e sucesso aí...

  • Obrigado(a) 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...