Ir para conteúdo
  • 1

Saldo do estoque estático - Conforme o filtro de data


Ir para solução Solucionado por Joao Raulino ,

Pergunta

  • Alunos
Postado

Olá pessoal, sou iniciante e ainda estou entendendo como funciona o contexto e as medidas com DAX. 
Preciso da ajuda de vocês!
__________________________________________________________________________________
Contexto:

Tenho uma tabela chamada "fMovimentoEstoque"
Nela tem varias informações, porem o que eu estou usando no contexto é as colunas:

"dt_ent_sai" >> Data de competencia da movimentação
"numero1" >> ID da movimentaçao
"numero2" >> N. Documento
"CodOper" >> Tipo de Operação
"prd_nome" >> Nome do produto
"Mov. Entrada" (medida)
"Mov. Saída" (medida)
"qtd_total" >> É o movimento de entrada e saída do produto, quando é negativo é saida e quando é positivo é entrada.
__________________________________________________________________________________
Medidas criadas DAX:

Mov. Entrada = 
    CALCULATE(
        SUM(fMovimentoEstoque[qtd_tot]),
        fMovimentoEstoque[qtd_tot]>0,
        fMovimentoEstoque2[situacao] = "normal"
    )

Mov. Saída = 
    CALCULATE(
        SUM(fMovimentoEstoque[qtd_tot]),
        fMovimentoEstoque[qtd_tot]<0,
        fMovimentoEstoque[situacao] = "normal"   
    )
    

__________________________________________________________________________________
Problema:

No dia 11/03/2020 eu tive uma entrada de 5kg de "Castanha do para quebrada", ou seja, o meu saldo é de 5Kg
No dia 01/07/2020 tive outra entrada de 5Kg, ou seja, o meu saldo é de 10Kg
E assim por diante

O meu problema é no saldo inicial quando eu coloco um filtro de data especifica.
Exemplo: Se eu colocar 01/07/2022 deveria aparecer 10Kg. Pois está considerando todo o movimento e não apenas o contexto atual.

É possivel fazer uma medida em DAX para essa situação?
O mais proximo que eu cheguei foi na medida DAX abaixo: 

Saldo teste = 
    SUMX(
        FILTER(
            ALLSELECTED(fMovimentoEstoque),
            fMovimentoEstoque[dt_ent_sai] <= MAX(fMovimentoEstoque[dt_ent_sai])            
        ),
        fMovimentoEstoque[qtd_tot]
    )

Com essa medida acima eu tenho a atualização do estoque, porem apenas no contexto atual, por conta da ALLSELECTED.
Se eu colocar a ALL a visualização não funciona. Gostaria de ajuda para entender onde estou errando! 

Movimentação de estoque - Copia - FORUM.pbix

5 respostass a esta questão

Posts Recomendados

  • 1
  • Alunos
  • Solução
Postado

Fala @Miguel Costa!

A medida esta certa: ela faz o acumulado usando a coluna [DT_ENT_SAI] como referencia então nos dias que tiverem a mesma [DT_ENT_SAI] ela vai somar/subtrair todos os registros de uma só vez:

image.png.4ae3e249c2e7a6ae594ba55281e02ecb.png

Algo que me passou despercebido é que você também esta aplicando um filtro na coluna loja, então precisa incluir ela na ALLEXCEPT. Ficaria assim:

Citar
Saldo Acumulado =
CALCULATE(
    SUM(fMovimentoEstoque[qtd_tot]),
    FILTER(
        ALLEXCEPT(
            fMovimentoEstoque,
            dProduto[prd_nome],
            dLoja[loj_nome]
        ),
        fMovimentoEstoque[dt_ent_sai] <= MAX(fMovimentoEstoque[dt_ent_sai]) &&
        fMovimentoEstoque[situacao] = "normal"
    )
)

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

Abs!

  • 1
  • Alunos
Postado

Suave @Miguel Costa?

Você estava no caminho certo com a medida [Saldo Acumulado], só faltou usar uma ALLEXCEPT() no lugar da ALLSELECTED():

Citar
Saldo NOVO =
CALCULATE(
    SUM(fMovimentoEstoque[qtd_tot]),
    FILTER(
        ALLEXCEPT(
            fMovimentoEstoque,
            dProduto[prd_nome]
            ),
        fMovimentoEstoque[dt_ent_sai] <= MAX(fMovimentoEstoque[dt_ent_sai]) &&
        fMovimentoEstoque[situacao] = "normal"
    )
)

image.png.132321c2cbe32e101103397f0c391bab.png

Abs!

  • 0
  • Alunos
Postado

Opa @Joao Raulino
Muito bom amigo, obrigado por ajudar!

Vou estudar o ALLEXCEPT, ainda nao tinha usado!
Não abusando da sua generosidade, sabe me informar o porque os movimentos negativos não estão entrando de forma correta no saldo?
image.png.07f57926c665b9da9d475adfd1ba4149.png

Pode ser alguma coluna que eu tenho que colocar no ALLEXCEPT para funcionar corretamente?

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...