Ir para conteúdo
  • 0

Valor do saldo anterior baseado na menor data selecionada, caso não exista a data, retorne o valor do saldo anterior a esta data.


Alessandro R. Teixeira
Ir para solução Solucionado por Edson Igari ,

Pergunta

  • Alunos

Boa tarde, pessoal! ✌️

Estou com um probleminha que parece ser tão simples mas nada dá certo kkcrying. 😅 Já usei ChatGPT, Copilot, Gemini, assisti vídeo de Indiano, vídeo de Venezuelano e nada! Rsrs

Meu problema é o seguinte:

Preciso de uma medida DAX que retorne o valor do saldo anterior baseado na menor data selecionada. Caso a data não exista, retorne o valor da referência anterior. A medida que estou usando por enquanto é essa:

Saldo Anterior
=
VAR MenorDataSelecionada
=
   MINX
(ALLSELECTED(vw_dim_calendario), vw_dim_calendario[Data])
RETURN
   CALCULATE
(
   MAX(vw_saldos_mov[VR_SALDO_ANTERIOR]),
   vw
_dim_calendario[Data] = MenorDataSelecionada)

__


Alguém aí será que consegue me salvar🙏

(Deixei 2 prints em anexo pra ajudar no entendimento do que preciso)

Img1.png

Img2.png

Link para o comentário
Compartilhar em outros sites

17 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução
15 horas atrás, Alessandro R. Teixeira disse:

Só um detalhe é que tive que diminuir a dim_calendario, considerando somente 2024...a minha do datalake vai do ano 2000 até ano 2100 😅

Tranquilo, nem precisa. Veja se é isso. To te mandando a media, pois por algum motivo não consigo anexar o pbix.
 

Saldo Anterior Edson Igari =
 
VAR vMenorDataContexto = MIN(vw_dim_calendario[Data])
 
VAR vMaiorDataAnterior =
CALCULATE(
    MAX(vw_saldos_mov[DT_SALDO]),
    FILTER(
        ALL(vw_dim_calendario),
        vw_dim_calendario[DATA] < vMenorDataContexto
    )
)
VAR vMenorSaldoAnterior =
CALCULATE(
    SUM(vw_saldos_mov[VR_SALDO_ANTERIOR]),
    FILTER(
            ALL(vw_dim_calendario),
            vw_dim_calendario[Data] = vMaiorDataAnterior
    )
)
VAR vMenorSaldoAtual =
CALCULATE(
    SUM(vw_saldos_mov[VR_SALDO_ANTERIOR]),
    FILTER(
            ALL(vw_dim_calendario),
            vw_dim_calendario[Data] = vMenorDataContexto
    )
)
RETURN
IF(
    ISBLANK(vMenorSaldoAtual),
        vMenorSaldoAnterior,
        vMenorSaldoAtual
)
  • Thanks 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Tente. Se não der certo, compartilha o arquivo com a gente.

Saldo Anterior =
VAR vDataContexto 
= MIN(vw_dim_calendario)

VAR vMaiorDataAnterior = 
CALCULATE(
         MAX(vw
_saldos_mov[DATA]),
         FILTER(
               ALL(vw
_dim_calendario),
               vw
_dim_calendario[DATA] < vDataContexto
          )
)
RETURN
   CALCULATE(

                  SUM(vw_saldos_mov[VR_SALDO_ANTERIOR]),
                  FILTER(
                          ALL(vw
_dim_calendario),
                          vw_dim
_calendario[Data] = vMaiorDataAnterior
                  )
)

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
18 minutos atrás, Edson Igari disse:

Tente. Se não der certo, compartilha o arquivo com a gente.

Saldo Anterior =
VAR vDataContexto 
= MIN(vw_dim_calendario)

VAR vMaiorDataAnterior = 
CALCULATE(
         MAX(vw
_saldos_mov[DATA]),
         FILTER(
               ALL(vw
_dim_calendario),
               vw
_dim_calendario[DATA] < vDataContexto
          )
)
RETURN
   CALCULATE(

                  SUM(vw_saldos_mov[VR_SALDO_ANTERIOR]),
                  FILTER(
                          ALL(vw
_dim_calendario),
                          vw_dim
_calendario[Data] = vMaiorDataAnterior
                  )
)

Boa tarde @Edson Igari!

Infelizmente ainda não deu certo 😟

Não consigo compartilhar o .pbix porque estou em uma conexão "Ao Vivo"/DirectQuery com o GCP/BQ SQL da empresa.

A sua medida retornou o seguinte erro:

image.png.aa85d2fda68a483515ba950172b33e03.pngimage.png.910999af54b3b64b677cc87d9814a499.png

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
15 minutos atrás, Alessandro R. Teixeira disse:

Boa tarde @Edson Igari!

Infelizmente ainda não deu certo 😟

Não consigo compartilhar o .pbix porque estou em uma conexão "Ao Vivo"/DirectQuery com o GCP/BQ SQL da empresa.

A sua medida retornou o seguinte erro:

image.png.aa85d2fda68a483515ba950172b33e03.pngimage.png.910999af54b3b64b677cc87d9814a499.png

Alessandro, tá grifado ali, tem que passar a coluna de data da sua fato. O nome data ali passei só como exemplo, acredito que no seu modelo seja aquela coluna ali DT_SALDO 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
41 minutos atrás, Edson Igari disse:

Alessandro, tá grifado ali, tem que passar a coluna de data da sua fato. O nome data ali passei só como exemplo, acredito que no seu modelo seja aquela coluna ali DT_SALDO 

image.png.6bcfad925bcdf956aabe1b25d04cfea0.png
image.png.546417bafdad05efe1db54bd75988215.png

Mesmo alterando para DT_SALDO o erro persiste...😟

Editado por Alessandro R. Teixeira
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
32 minutos atrás, Edson Igari disse:

só os que estão na medida e na tela. 

Segue em anexo...mas já vi que criando esse arquivo de exemplo a lógica meio que dá certo...talvez precise somente de um pequeno ajuste...

Quando selecionar no range de data e ela existir VR_SALDO_ANTERIOR, por exemplo aqui dia 05/08/2024, tem que retornar o valor dela mesma, no caso aqui 46747.

Vi que sua medida trouxe certinho a anterior quando não acha, no caso se eu selecionar dia 06/08/2024 que não existe, ela trouxe certinho 46747 do dia 05/08/2024 que é o saldo que existe anterior.

image.png.d0b9131622f255a3c3f5a3201883d015.png

image.png.926dc7a76f53b0336588341a0e07e444.png

Mas mesmo assim o mistério permanece, né!? 

Por que raios no meu .pbix conectado ao Data Lake/GCP está dando tão diferente!? 😢

PBIX SIMULACAO.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
1 hora atrás, Edson Igari disse:

Tranquilo, nem precisa. Veja se é isso. To te mandando a media, pois por algum motivo não consigo anexar o pbix.
 

Saldo Anterior Edson Igari =
 
VAR vMenorDataContexto = MIN(vw_dim_calendario[Data])
 
VAR vMaiorDataAnterior =
CALCULATE(
    MAX(vw_saldos_mov[DT_SALDO]),
    FILTER(
        ALL(vw_dim_calendario),
        vw_dim_calendario[DATA] < vMenorDataContexto
    )
)
VAR vMenorSaldoAnterior =
CALCULATE(
    SUM(vw_saldos_mov[VR_SALDO_ANTERIOR]),
    FILTER(
            ALL(vw_dim_calendario),
            vw_dim_calendario[Data] = vMaiorDataAnterior
    )
)
VAR vMenorSaldoAtual =
CALCULATE(
    SUM(vw_saldos_mov[VR_SALDO_ANTERIOR]),
    FILTER(
            ALL(vw_dim_calendario),
            vw_dim_calendario[Data] = vMenorDataContexto
    )
)
RETURN
IF(
    ISBLANK(vMenorSaldoAtual),
        vMenorSaldoAnterior,
        vMenorSaldoAtual
)

Bom dia, Edson! 😄

Primeiramente, muito obrigado pela dedicação e empenho em me ajudar. Esta sua solução ficou perfeita. 🙏 Até que enfim! Ufa! Conseguimos! Kkk 🔝

Por fim, consegui fazer ela funcionar no meu modelo/.pbix, saca só:

Por algum motivo, o meu campo da segmentação CD_CONTABANCOSTRING está fazendo a inteligência do PBI se perder. E fui eu mesmo que pedi pra engenharia deixar como string este campo pensando na UX dos usuários, para que assim eu consiga habilitar o campo de pesquisa do número da conta. Porém esse campo CD_CONTABANCOSTRING é originado à partir do campo CD_CONTABANCO que é o número da conta do banco que a pessoa quer analisar.

image.png.287468fc1c8001fc292f8d97a04c740a.png
image.png.017eed1faa2d3c4fb29dcef56c122a3f.png
image.png.2115429b7dea46c69a620e22a33aa191.png

Vou alterar o campo de segmentação, e deixar sem pesquisa mesmo, vai ficar um pouco ruim pro usuário navegar até achar a conta que precisa, porém pelo menos assim funciona, e isso é o que importa no final do dia kkk

___


Você me ajudou não só na medida DAX mas também no meu senso analítico quando pediu pra eu montar um modelo.

Muito obrigado! 🤜🤛

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
12 minutos atrás, Alessandro R. Teixeira disse:

Bom dia, Edson! 😄

Primeiramente, muito obrigado pela dedicação e empenho em me ajudar. Esta sua solução ficou perfeita. 🙏 Até que enfim! Ufa! Conseguimos! Kkk 🔝

Por fim, consegui fazer ela funcionar no meu modelo/.pbix, saca só:

Por algum motivo, o meu campo da segmentação CD_CONTABANCOSTRING está fazendo a inteligência do PBI se perder. E fui eu mesmo que pedi pra engenharia deixar como string este campo pensando na UX dos usuários, para que assim eu consiga habilitar o campo de pesquisa do número da conta. Porém esse campo CD_CONTABANCOSTRING é originado à partir do campo CD_CONTABANCO que é o número da conta do banco que a pessoa quer analisar.

image.png.287468fc1c8001fc292f8d97a04c740a.png
image.png.017eed1faa2d3c4fb29dcef56c122a3f.png
image.png.2115429b7dea46c69a620e22a33aa191.png

Vou alterar o campo de segmentação, e deixar sem pesquisa mesmo, vai ficar um pouco ruim pro usuário navegar até achar a conta que precisa, porém pelo menos assim funciona, e isso é o que importa no final do dia kkk

___


Você me ajudou não só na medida DAX mas também no meu senso analítico quando pediu pra eu montar um modelo.

Muito obrigado! 🤜🤛

Opa, tmj. 

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