Ir para conteúdo
  • 0

Último valor que não seja Blank


Daniel Marim
Ir para solução Solucionado por Alex Pereira ,

Pergunta

  • Alunos

Pessoal,

 

Tenho o custo por mês do produto que é =  Valor de compra / (qtd comprada + qtd bonificada)

No mês que não tive compra, preciso trazer o valor da  formula acima do último mês

Como a medida por mês se torna uma média, preciso desse resultado retornando, e não da última data de compra.

Mesmo que não esteja filtrado aquele mês. Exemplo filtrei os meses abaixo, porém se mar-2024 estivesse vazio, deveria trazer o último valor

tentei com lastnoblank da forma abaixo, e não deu certo

Custo Compra/Bonfic = CALCULATE([CUSTO COMPRA&BONIF.],
LASTNONBLANK(Dcalendario[Mes Ano],
[CUSTO COMPRA&BONIF.]))

image.png.1e2908320c715d2055cb68b3699b0c3d.png

Link para o comentário
Compartilhar em outros sites

15 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos

Tente isso:

 

Custo Compra/Bonfic =
VAR UltimoCusto = 
    // Calcula o valor do custo usando a última data em que não há um valor em branco
    // para a medida [CUSTO COMPRA&BONIF.].
    // A função LASTNONBLANK retorna a última data onde a condição foi atendida.
    CALCULATE(
        [CUSTO COMPRA&BONIF.],  // A medida que queremos calcular
        LASTNONBLANK(Dcalendario[Data], [CUSTO COMPRA&BONIF.])  // Retorna a última data com um valor não nulo
    )
RETURN
    // A função IF avalia se a condição é verdadeira ou falsa.
    // Neste caso, verifica se o valor da medida [CUSTO COMPRA&BONIF.] para o mês atual é em branco.
    IF(
        ISBLANK([CUSTO COMPRA&BONIF.]),  // Verifica se a medida está em branco para o mês atual
        UltimoCusto,  // Se estiver em branco, retorna o valor calculado na variável UltimoCusto
        [CUSTO COMPRA&BONIF.]  // Caso contrário, retorna o valor da medida atual
    )

 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
42 minutos atrás, Alex Pereira disse:

Tente isso:

 

Custo Compra/Bonfic =
VAR UltimoCusto = 
    // Calcula o valor do custo usando a última data em que não há um valor em branco
    // para a medida [CUSTO COMPRA&BONIF.].
    // A função LASTNONBLANK retorna a última data onde a condição foi atendida.
    CALCULATE(
        [CUSTO COMPRA&BONIF.],  // A medida que queremos calcular
        LASTNONBLANK(Dcalendario[Data], [CUSTO COMPRA&BONIF.])  // Retorna a última data com um valor não nulo
    )
RETURN
    // A função IF avalia se a condição é verdadeira ou falsa.
    // Neste caso, verifica se o valor da medida [CUSTO COMPRA&BONIF.] para o mês atual é em branco.
    IF(
        ISBLANK([CUSTO COMPRA&BONIF.]),  // Verifica se a medida está em branco para o mês atual
        UltimoCusto,  // Se estiver em branco, retorna o valor calculado na variável UltimoCusto
        [CUSTO COMPRA&BONIF.]  // Caso contrário, retorna o valor da medida atual
    )

 

Bom dia Alex, tentei e não retorna.
acredito que tem que tirar os filtros de data
algo parecido com ALL no calendario


 image.png.2e2cd8a392915dbe76a41f8616f5946c.png

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Tenta essa

Custo Compra/Bonfic = 
VAR UltimoCusto = 
    CALCULATE(
        MAXX(
            FILTER(
                ALL(dCalendario),  // Remove os filtros do calendário para buscar em todos os meses
                dCalendario[Data] < MAX(dCalendario[Data]) && NOT(ISBLANK([CUSTO COMPRA&BONIF.]))
            ),
            [CUSTO COMPRA&BONIF.]
        )
    )
RETURN
    IF(
        ISBLANK([CUSTO COMPRA&BONIF.]),  // Se não houver valor de custo para o mês atual
        UltimoCusto,  // Usa o valor da variável UltimoCusto
        [CUSTO COMPRA&BONIF.]  // Caso contrário, usa o valor da medida atual
    )



 

image.png

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
31 minutos atrás, Alex Pereira disse:

Tenta essa

Custo Compra/Bonfic = 
VAR UltimoCusto = 
    CALCULATE(
        MAXX(
            FILTER(
                ALL(dCalendario),  // Remove os filtros do calendário para buscar em todos os meses
                dCalendario[Data] < MAX(dCalendario[Data]) && NOT(ISBLANK([CUSTO COMPRA&BONIF.]))
            ),
            [CUSTO COMPRA&BONIF.]
        )
    )
RETURN
    IF(
        ISBLANK([CUSTO COMPRA&BONIF.]),  // Se não houver valor de custo para o mês atual
        UltimoCusto,  // Usa o valor da variável UltimoCusto
        [CUSTO COMPRA&BONIF.]  // Caso contrário, usa o valor da medida atual
    )



 

image.png

 

Agora veio um valor, porém ele traz todos custos na tabela, do primeiro em 2022 até o último

mudando para o allselect melhora um pouco.

image.png.12913e209f06cb93683b48f79205bbb3.png

image.png.c17c67f2322d43c37a5afd8cedf34cb5.png

 

o custo que quero é trazer é somente do último mês, a média

image.png.a4378ddfbccc2321904eaf1c0ea8a15f.png

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
VAR UltimoCusto = 
    CALCULATE(
        MAXX(
            FILTER(
                ALL(dCalendario),  // Remove os filtros do calendário para buscar em todos os meses
                dCalendario[AnoMes] < MAX(dCalendario[AnoMes]) && NOT(ISBLANK([CUSTO COMPRA&BONIF.]))
            ),
            [CUSTO COMPRA&BONIF.]
        )
    )
RETURN
    IF(
        ISBLANK([CUSTO COMPRA&BONIF.]),  // Se não houver valor de custo para o mês atual
        UltimoCusto,  // Usa o valor da variável UltimoCusto
        [CUSTO COMPRA&BONIF.]  // Caso contrário, usa o valor da medida atual
    )
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
1 minuto atrás, Alex Pereira disse:
VAR UltimoCusto = 
    CALCULATE(
        MAXX(
            FILTER(
                ALL(dCalendario),  // Remove os filtros do calendário para buscar em todos os meses
                dCalendario[AnoMes] < MAX(dCalendario[AnoMes]) && NOT(ISBLANK([CUSTO COMPRA&BONIF.]))
            ),
            [CUSTO COMPRA&BONIF.]
        )
    )
RETURN
    IF(
        ISBLANK([CUSTO COMPRA&BONIF.]),  // Se não houver valor de custo para o mês atual
        UltimoCusto,  // Usa o valor da variável UltimoCusto
        [CUSTO COMPRA&BONIF.]  // Caso contrário, usa o valor da medida atual
    )

Muda para ano mes que ai acho que vai dar certo!

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
3 horas atrás, Alex Pereira disse:

"Hmmm... Será que você poderia disponibilizar uma base de exemplo ou compartilhar como os seus dados estão estruturados? Isso me ajudaria a criar uma simulação mais precisa!"

 

Vê se ajuda, ou depois tento te enviar o arquivo

Essa é a tabela fato Vendas, que consta tbm as Compras para essa análise de custo

image.png.777e730368030eb0a9b24faf5236ecb2.png

essa é a Dcalendario. Mesmo transformando a coluna Mes Ano em data, ainda assim não funcionou na última tentativa

image.png.82d062572655bb500f429b50c2bd8d05.png

image.png

image.png

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Custo Compra TESTE = 
VAR UltimoMesAno =
    CALCULATE(
        MAX(dCalendario[AnoMes]),
        FILTER(
            ALLSELECTED(dCalendario),
            dCalendario[AnoMes] < MAX(dCalendario[AnoMes])
        )
    )
VAR vResultado = 
    CALCULATE(
        [CUSTO COMPRA&BONIF.],
        FILTER(
            ALL(dCalendario),
            dCalendario[AnoMes] = UltimoMesAno
        )
    )
RETURN
    IF(
        ISBLANK([CUSTO COMPRA&BONIF.]),  // Se o mês atual estiver em branco
        vResultado,  // Usa o custo calculado para o último mês válido
        [CUSTO COMPRA&BONIF.]  // Caso contrário, usa o valor do mês atual
    )

Seria isso?


image.png.b8aaed2aa205117b1d6e3eb1cc923801.png

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
4 horas atrás, Alex Pereira disse:
Custo Compra TESTE = 
VAR UltimoMesAno =
    CALCULATE(
        MAX(dCalendario[AnoMes]),
        FILTER(
            ALLSELECTED(dCalendario),
            dCalendario[AnoMes] < MAX(dCalendario[AnoMes])
        )
    )
VAR vResultado = 
    CALCULATE(
        [CUSTO COMPRA&BONIF.],
        FILTER(
            ALL(dCalendario),
            dCalendario[AnoMes] = UltimoMesAno
        )
    )
RETURN
    IF(
        ISBLANK([CUSTO COMPRA&BONIF.]),  // Se o mês atual estiver em branco
        vResultado,  // Usa o custo calculado para o último mês válido
        [CUSTO COMPRA&BONIF.]  // Caso contrário, usa o valor do mês atual
    )

Seria isso?


image.png.b8aaed2aa205117b1d6e3eb1cc923801.png

Uma dúvida, como está formatado a sua coluna [AnoMes]?

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
2 horas atrás, Alex Pereira disse:

Ela é uma coluna que tem o ano concatenado com numero do mês, serve para classificar coluna ano mes como a coluna contador ano

 

 

eu faço uma tbm assim, mesmo usando ela tive os resultados abaixo

Se puder passar a sua pbix de teste...

 

image.png.f4d651b96399d59645167311a5b9085b.png

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
8 horas atrás, Alex Pereira disse:

Ela é uma coluna que tem o ano concatenado com numero do mês, serve para classificar coluna ano mes como a coluna contador ano

 

Obrigado pela ajuda até agora... entendi que a VAR UltimoMesAno está sempre buscando a anterior, por isso até encontra o valor no mês seguinte a compra, porém depois não acha mais.

exemplo, tivemos compra em 202311, em 202312 o valor encontrou e a no próximo mês a busca deveria ainda ser em 202311. Onde tiver compra > que 0

O modelo que criou para teste não passa mais de um mês sem compra, por isso retorna certinho

image.png.84bc121c625b026e846be835d355c786.png

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Em 08/08/2024 em 14:26, Alex Pereira disse:

Ela é uma coluna que tem o ano concatenado com numero do mês, serve para classificar coluna ano mes como a coluna contador ano

 

Consegui utilizando a data no formato da tabela fato.

Valeu pela ajuda!


Custo Compra Ultimo Mes = 
VAR UltimoMesAno =

    CALCULATE(
        MAx(Vendas[Ord Ano Mes]),Vendas[Qt Compras]>0,
        FILTER(
            ALLSELECTED(Vendas),
            Vendas[Ord Ano Mes] < MAX(Vendas[Ord Ano Mes])
        )
    )
VAR vResultado = 

    CALCULATE(
        [CUSTO COMPRA&BONIF.],
        FILTER(
            ALLSELECTED(Vendas),
            Vendas[Ord Ano Mes] = UltimoMesAno
        )
    )
RETURN
    IF(
        ISBLANK([CUSTO COMPRA&BONIF.]),  
        vResultado,  
        [CUSTO COMPRA&BONIF.]  
    )

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