Ir para conteúdo
  • 0

ESTOQUE - INFLAÇÃO DE MATERIAIS


Elias Batista
Ir para solução Solucionado por paulocesarmlf ,

Pergunta

  • Alunos

Olá pessoal,

Criei um BI pra visualizar a Inflação dos Materiais movimentados em meu estoque, para isso criei medidas que calculassem:

  • Valor Unitário Médio: .VlrUnitMedio = AVERAGE(INFLACAO[VLUNIT])
  • Valor Unitário Médio sem Outliers:
    .VlrUnitMedio sem Outliers =
    VAR DesvioP = [.Desvio Padrao]
    VAR MediaGL = [.VlrUnitMedio]
     
    Return
    CALCULATE(AVERAGE(INFLACAO[VLUNIT]),INFLACAO[VLUNIT] < DesvioP * 3 + MediaGL)

Na Matriz estou usando as medidas:

  • VlrUnit Contexto (Pra no Total calcular certinho)= 
VAR vFiltro = ISFILTERED(INFLACAO[CODINTMAT])
 
VAR vContexto_Valor = [.VlrUnitMedio sem Outliers]
VAR vContexto_Total = SUMX(VALUES(INFLACAO[CODINTMAT]),
                                                       CALCULATE([.VlrUnitMedio sem Outliers])
)
 
Return
IF(vFiltro,
vContexto_Valor,
vContexto_Total
)
  • Diff Contexto (Para calcular a diferença do Mês Atual -  Mês Anterior): 
    VAR vFiltro = or(ISINSCOPE(INFLACAO[DESCRICAOMAT]),ISINSCOPE(INFLACAO[CODINTMAT]))
    VAR vContexto_Valor = [.VlrUnitMedio sem Outliers] - CALCULATE([.VlrUnitMedio sem Outliers],PARALLELPERIOD(dCalendario[Date],-1,MONTH))
    var tblTabela = ADDCOLUMNS(VALUES(INFLACAO[CODINTMAT]),"vValor",[.Diff])
    var vContexto_Total = SUMX(VALUES(INFLACAO[CODINTMAT]),
    [.VlrUnitMedio sem Outliers] - CALCULATE([.VlrUnitMedio sem Outliers],PARALLELPERIOD(dCalendario[Date],-1,MONTH))
    )
     
    Return
     
    IF(vFiltro,
    [.Diff],
    vContexto_Total
    )
  • .%Inf (Para calcular a Porcentagem da Diferença, ou seja, a Inflação):  
    DIVIDE([.VlrUnit Contexto],[.VlrUnit Mes Ant],0)-1

MEU PROBLEMA ESTÁ NA PENÚLTIMA MEDIDA(.Diff Contexto) E CONSEQUENTEMENTE NA ÚLTIMA(.%Inf) JÁ QUE A ANTERIOR INTERFERE NESTA.

Filtrei 3 materiais para facilitar a visualização:

image.png.90410b12c14ec7f4257ea9b88ede9c7a.png

  1. O valor correto da Diferença Total no Mês de Fev/22 é -59,73;
  2. Notei que pra compor o valor total a medida não considerou a Diferença do 3º Material no valor de -56,33. Somou somente a diferença dos dois primeiros materiais;
  3. O valor correto da %Inf Total no Mês de Fev/22 é -44,63.
  4. Os valores Unitários estão corretos tanto no individual quanto no Total.

Em anexo está o PBI...Se alguém puder ajudar fico agradecido!!!

PROJEÇÃO DE COMPRAS - Copia.pbix

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução
15 horas atrás, Elias Batista disse:

Olá pessoal,

Criei um BI pra visualizar a Inflação dos Materiais movimentados em meu estoque, para isso criei medidas que calculassem:

  • Valor Unitário Médio: .VlrUnitMedio = AVERAGE(INFLACAO[VLUNIT])
  • Valor Unitário Médio sem Outliers:
    .VlrUnitMedio sem Outliers =
    VAR DesvioP = [.Desvio Padrao]
    VAR MediaGL = [.VlrUnitMedio]
     
    Return
    CALCULATE(AVERAGE(INFLACAO[VLUNIT]),INFLACAO[VLUNIT] < DesvioP * 3 + MediaGL)

Na Matriz estou usando as medidas:

  • VlrUnit Contexto (Pra no Total calcular certinho)= 
VAR vFiltro = ISFILTERED(INFLACAO[CODINTMAT])
 
VAR vContexto_Valor = [.VlrUnitMedio sem Outliers]
VAR vContexto_Total = SUMX(VALUES(INFLACAO[CODINTMAT]),
                                                       CALCULATE([.VlrUnitMedio sem Outliers])
)
 
Return
IF(vFiltro,
vContexto_Valor,
vContexto_Total
)
  • Diff Contexto (Para calcular a diferença do Mês Atual -  Mês Anterior): 
    VAR vFiltro = or(ISINSCOPE(INFLACAO[DESCRICAOMAT]),ISINSCOPE(INFLACAO[CODINTMAT]))
    VAR vContexto_Valor = [.VlrUnitMedio sem Outliers] - CALCULATE([.VlrUnitMedio sem Outliers],PARALLELPERIOD(dCalendario[Date],-1,MONTH))
    var tblTabela = ADDCOLUMNS(VALUES(INFLACAO[CODINTMAT]),"vValor",[.Diff])
    var vContexto_Total = SUMX(VALUES(INFLACAO[CODINTMAT]),
    [.VlrUnitMedio sem Outliers] - CALCULATE([.VlrUnitMedio sem Outliers],PARALLELPERIOD(dCalendario[Date],-1,MONTH))
    )
     
    Return
     
    IF(vFiltro,
    [.Diff],
    vContexto_Total
    )
  • .%Inf (Para calcular a Porcentagem da Diferença, ou seja, a Inflação):  
    DIVIDE([.VlrUnit Contexto],[.VlrUnit Mes Ant],0)-1

MEU PROBLEMA ESTÁ NA PENÚLTIMA MEDIDA(.Diff Contexto) E CONSEQUENTEMENTE NA ÚLTIMA(.%Inf) JÁ QUE A ANTERIOR INTERFERE NESTA.

Filtrei 3 materiais para facilitar a visualização:

image.png.90410b12c14ec7f4257ea9b88ede9c7a.png

  1. O valor correto da Diferença Total no Mês de Fev/22 é -59,73;
  2. Notei que pra compor o valor total a medida não considerou a Diferença do 3º Material no valor de -56,33. Somou somente a diferença dos dois primeiros materiais;
  3. O valor correto da %Inf Total no Mês de Fev/22 é -44,63.
  4. Os valores Unitários estão corretos tanto no individual quanto no Total.

Em anexo está o PBI...Se alguém puder ajudar fico agradecido!!!

PROJEÇÃO DE COMPRAS - Copia.pbix 2 MB · 1 download

Amigo, quando você coloca essas condições o "Total" não está no escopo definido como condição. Com isso ele calcula tudo e não sai somando linha a linha.

Para resolver isso faça essa nova medida:

DIF CONTEXTO 2 =
SUMX(
CROSSJOIN(
ALLSELECTED(INFLACAO[CODINTMAT]),
VALUES(dCalendario[Mês/Ano])
),
[.Diff Contexto]
)

Ai você utiliza ela no gráfico e ,a %Inf você troca a Diff contexto por essa Dif contexto 2 :)

Se essa reposta te ajudar, consegue marcar como correta?
 

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

  • 0
  • Alunos

Valeu Paulo, deu certo:

image.png.e6d4f3f2e561a6089daa28d5816056db.png

A Medida que vc criou funcionou perfeitamente, modifiquei a %Inf conforme a orientação que vc deu e tb funcionou....
Mais tem um porém... Ao limpar o filtro para o cálculo ser executado nos 891 materiais ... image.png.f34f581bd61d6bd49c744e8aff1167f1.png "Senta que lá vem História"... Gira, Gira, Gira e não vai.

Acredito que as medidas que criei, talvez, não seguiram uma lógica boa... não são nada performáticas ... Por acaso vc consegue sugerir uma solução que melhore a performance?

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
1 hora atrás, Elias Batista disse:

Valeu Paulo, deu certo:

image.png.e6d4f3f2e561a6089daa28d5816056db.png

A Medida que vc criou funcionou perfeitamente, modifiquei a %Inf conforme a orientação que vc deu e tb funcionou....
Mais tem um porém... Ao limpar o filtro para o cálculo ser executado nos 891 materiais ... image.png.f34f581bd61d6bd49c744e8aff1167f1.png "Senta que lá vem História"... Gira, Gira, Gira e não vai.

Acredito que as medidas que criei, talvez, não seguiram uma lógica boa... não são nada performáticas ... Por acaso vc consegue sugerir uma solução que melhore a performance?

Mano, pior que não consigo te ajudar muito na performance pq não entendo as regras de negocio. Não sei se é necessário ou não ter todas essas variaveis.

Aconselho você a rever essas medidas:
VlrUnit Contexto - Me parece que não precisa ter esse IF, talvez só a segunda variável já seja a própria medida que você quer.

Tira as variaveis que você ta calculando nas medidas mas não utiliza durante os calculos... 

Pior que ver perfomance vei é um jogo de vai e volta e testa, é complicado analisar por cima.

Se a minha resposta tiver te ajudado, consegue marcar como correta? Ficaria agradecido.

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