Ir para conteúdo
  • 0

Meses para compras


Gilson Carvalho
Ir para solução Solucionado por Dums ,

Pergunta

  • Alunos

Bom dia a todos!

Estou tentando desenvolver alguns indicadores que auxiliem os compradores da empresa a tomarem a melhor decisão possível de compra, de acordo com as vendas mensais e os retornos desejados pela diretoria da empresa. Para isso preciso calcular, de acordo com as vendas e o estoque disponível de cada produto, os meses do ano que cada produto precisa ter reposição de estoque. A forma que encontrei para fazer isso foi criar uma medida para cada mês do ano (12 medidas) e mostrar em uma tabela, mas quando acrescento a partir da quarta medida nessa tabela meu processamento e minha memória consumida disparam. Gostaria de saber se teria alguma outra forma de criar essas medidas sem consumir tantos recursos. Desde já agradeço. Segue a base que estou utilizando. As medidas às quais me refiro estão na tabela _Medidas --> Compras Mensais.

Programação Compras.pbix

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

 

Cara, entendi o conceito.

 

Vou tentar pensar em algo, a ideia é não precisar ficar repetindo tantas vezes a mesma coisa senão vai ficar super engessado a processo...

 

Emnquanto isso, dá uma olhada no pbix que montei anexo, troquei tudo que estava em cálculo chamando mais de uma vez por veriável, ai vai calcular uma vez só por "contexto"... Aqui ficou com uma performance bem boa até...

 

Anexo aqui pra dar uma analisada e ver se fica legal...

448828184_ProgramaoCompras.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Opa...

Cara, acho que a lentidão é porque de uma certa forma tu montou uma recursividade ai, da quarta medida em diante ele faz muitas vezes o mesmo cálculo...

Qual é o conceito que tu está aplicando nessa sua estratégia de indicadores? Pra ver se tem como montar de alguma outra forma para ganhar performance...

 

Um forma de "despiorar" um pouco é jogar as medidas que tu usa mais vezes no cálculo para uma varáivel, como por exemplo a mesesGiroL01, tu usa 3x na quarta compra:

Quarta Compra L01 = 
VAR mesesGiroL01 = [Meses Giro L01]
RETURN
    IF(([Terceira Compra L01] + mesesGiroL01 > 12), 
              mesesGiroL01-(12-[Terceira Compra L01]),
              [Terceira Compra L01] + mesesGiroL01
            )

 

Em um teste aqui, fazendo isto destruiu menos a minha máquina, não ficou rápido, longe disto ainda, mas destruiu um pouco menos:

performance.thumb.png.47f580ba53f9c1325b66ecbbf0c8caad.png

 

Então, se tu conseguisse explicar um pouco mais da estratégia do negócio, acho que daria para tentarmos remodelar algumas coisas..

Abraços...

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Boa tarde Anderson!

Primeiramente agradeço pela atenção. Também cheguei nessa conclusão da recursividade, mas não consegui pensar em outra forma de fazer. Vou tentar explicar melhor o conceito. Para definir quando vou comprar um produto eu preciso pegar o mês que esse produto mais vende, aí eu defino que o mês anterior eu preciso comprar, as demais compras desse produto serão em meses definidos pelo intervalo da medida "Meses Giro L01", por isso uso tanto essa medida dentro da fórmula. 

 

Exemplo:

Produto Calça

Mês de maior venda = 12

Meses Giro L01 =  ( 12/4 = 3 (Quer dizer que preciso comprar 4 vezes no ano de 3 em 3 meses))

Mês de maior compra = (Mês de maior venda - 1 = Mês 11)

Demais compras:  11 - 3 =  Mês 08 

                                   8 - 3 =   Mês 05

                                   5 - 3 =    Mês 02 

Para alguns produtos esse número de compras chegaria a 12 vezes no ano, por isso minha ideia foi criar 12 medidas, uma por mês, mas acho que nesse processo que vem a recursividade, pois cada medida depende da anterior.

Espero ter conseguido explicar melhor a situação.

Mais uma vez obrigado pela atenção.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...