Ir para conteúdo
  • 0

Quantidade entre categorias


Sara Antunes
Ir para solução Solucionado por Bruno Abdalla de Souza ,

Pergunta

  • Alunos

Bom dia!

Estou com um desafio de contar a quantidade de vezes que um produto ficou abaixo do estoque mínimo até a sua reposição, abaixo tem o valor esperado na tabela, ou seja, no período em questão o estoque ficou abaixo do mínimo 4 vezes.

image.png.b71071eb3009acaefb8c99458e9e07ac.png

Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

@Sara Antunes, veja se está correto:

Número de Reposições = 
VAR vData = MAX(Tabela1[DATA])
VAR vDataMinima = 
    CALCULATE(
        MIN(Tabela1[DATA]),
        ALL(Tabela1)
    )
VAR vDatas = 
    UNION(
        SELECTCOLUMNS(
            {vDataMinima},
            "Data",
            [Value]
        ),
        SELECTCOLUMNS(
            FILTER(
                ALL(Tabela1),
                Tabela1[DATA] < vData &&
                Tabela1[ORIGEM] = "REPOSICAO"
            ),
            "Data",
            [DATA]
        )
    )
VAR vResposicao = 
    ADDCOLUMNS(
        vDatas,
        "@Resposicao",
        VAR vDataLinhaAtual = [Data]
        VAR vDataReposicaoAnterior = 
            CALCULATE(
                MAX(Tabela1[DATA]),
                FILTER(
                    ALL(Tabela1),
                    Tabela1[DATA] < vDataLinhaAtual &&
                    Tabela1[ORIGEM] = "REPOSICAO"
                )
            )
        VAR vDataResposicaoAnteriorCorrigida = 
            IF(
                ISBLANK(vDataReposicaoAnterior),
                vDataMinima
            )
        VAR vQtdeAbaixoMinimo = 
            COUNTROWS(
                FILTER(
                    ALL(Tabela1),
                    Tabela1[Abaixo do Minimo] = "Sim" &&
                    Tabela1[DATA] >= vDataResposicaoAnteriorCorrigida &&
                    Tabela1[DATA] <= vData
                )
            )
        VAR vResultado = INT(vQtdeAbaixoMinimo > 0)
        RETURN
        vResultado
    )
VAR vResultado = 
    COALESCE(
        COUNTROWS(
            FILTER(
                vResposicao,
                [@Resposicao] = 1
            )
        ),
        0
    )
RETURN
vResultado

 

20240503_QtidadeAbaixoEstoqueMinimo.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Esse resultado é o que eu preciso,
a lógica é a seguinte, preciso saber quantas vezes meu estoque ficou abaixo do mínimo a cada reposição, por exemplo, analisando um período de 6 meses, supomos que tenha feito 3 reposições e antes delas todas fiquei abaixo do estoque mínimo, então nesse período eu fiquei 3x abaixo.
Em resumo, reabasteci dia 01/04, dia 03,04,05 e 06 fiquei abaixo do minimo, conto 1, dia 07 reabasteci novamente, dia 08,09 e 10 fiquei novamente abaixo do mínimo conto mais 1, nesse periodo fiquei então duas vezes abaixo do mínimo

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
33 minutos atrás, Sara Antunes disse:

Esse resultado é o que eu preciso,
a lógica é a seguinte, preciso saber quantas vezes meu estoque ficou abaixo do mínimo a cada reposição, por exemplo, analisando um período de 6 meses, supomos que tenha feito 3 reposições e antes delas todas fiquei abaixo do estoque mínimo, então nesse período eu fiquei 3x abaixo.
Em resumo, reabasteci dia 01/04, dia 03,04,05 e 06 fiquei abaixo do minimo, conto 1, dia 07 reabasteci novamente, dia 08,09 e 10 fiquei novamente abaixo do mínimo conto mais 1, nesse periodo fiquei então duas vezes abaixo do mínimo

Sara, só pra ficar bem claro pra que possamos desenvolver a solução. Se o raciocínio é, contar a quantidade de vezes que ficou em baixa desde a última reposição, o correto com base no meu entendimento, seria assim:

image.png.87188e99c59e8eed258cb35776500f39.png

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
2 horas atrás, Sara Antunes disse:

Os primeiros "Sim" contam tbm, pois ai na tabela não mostra, mas se há estoque é pq houve uma entrada, então o resultado final será 5 mesmo

 

Blz, consegue enviar esse arquivo do print??? Ah, outra coisa, isso tem que ser uma coluna na sua tabela ou uma medida?

Editado por Edson Igari
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
14 horas atrás, Edson Igari disse:

@Sara Antunes, só pra confirmar. Um pouco antes vc colocou medida e agora colocou coluna rs. É medida ou coluna???

kkk, então, a medida seria a forma já definitiva, mas se for muito complexo pode ser a coluna conforme citei por ultimo, pois se conseguir mostrar apenas 1 "s" depois é só fazer um count

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Em 04/05/2024 em 10:49, Bruno Abdalla de Souza disse:

@Sara Antunes, veja se está correto:

Número de Reposições = 
VAR vData = MAX(Tabela1[DATA])
VAR vDataMinima = 
    CALCULATE(
        MIN(Tabela1[DATA]),
        ALL(Tabela1)
    )
VAR vDatas = 
    UNION(
        SELECTCOLUMNS(
            {vDataMinima},
            "Data",
            [Value]
        ),
        SELECTCOLUMNS(
            FILTER(
                ALL(Tabela1),
                Tabela1[DATA] < vData &&
                Tabela1[ORIGEM] = "REPOSICAO"
            ),
            "Data",
            [DATA]
        )
    )
VAR vResposicao = 
    ADDCOLUMNS(
        vDatas,
        "@Resposicao",
        VAR vDataLinhaAtual = [Data]
        VAR vDataReposicaoAnterior = 
            CALCULATE(
                MAX(Tabela1[DATA]),
                FILTER(
                    ALL(Tabela1),
                    Tabela1[DATA] < vDataLinhaAtual &&
                    Tabela1[ORIGEM] = "REPOSICAO"
                )
            )
        VAR vDataResposicaoAnteriorCorrigida = 
            IF(
                ISBLANK(vDataReposicaoAnterior),
                vDataMinima
            )
        VAR vQtdeAbaixoMinimo = 
            COUNTROWS(
                FILTER(
                    ALL(Tabela1),
                    Tabela1[Abaixo do Minimo] = "Sim" &&
                    Tabela1[DATA] >= vDataResposicaoAnteriorCorrigida &&
                    Tabela1[DATA] <= vData
                )
            )
        VAR vResultado = INT(vQtdeAbaixoMinimo > 0)
        RETURN
        vResultado
    )
VAR vResultado = 
    COALESCE(
        COUNTROWS(
            FILTER(
                vResposicao,
                [@Resposicao] = 1
            )
        ),
        0
    )
RETURN
vResultado

 

20240503_QtidadeAbaixoEstoqueMinimo.pbix 19.83 kB · 5 downloads

Deu certo, obrigada!

  • Like 1
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...