Ir para conteúdo
  • 0

DAX - Duvida formula Dax para seleccionar ultima data do movimento da coluna Banco


Tiago Patricio
Ir para solução Solucionado por paulocesarmlf ,

Pergunta

  • Alunos

Boa tarde a todos,

No mapa em excel que envio em anexo, preciso retornar o valor da coluna "Valor Saldo" para cada banco (coluna "Banco") na data mais recente da coluna "Data de Lançamento" , os valores que pretendo retornar são os que estão pintados a amarelo.

Se alguém me puder ajudar por favor.

Obrigado.

Cumprimentos,

 

Duvida 1.xlsx

Editado por Tiago Patricio
Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução
22 horas atrás, paulocesarmlf disse:

Uma coisa que também pode estar acontecendo Tiago é que possa ter BANCOS que possuem duplicadas no mesmo dia.

Exemplo:

Banco C tem duas linhas de saldo no dia 05/01/2022 (considera essa data como máximo)

Se isso for realmente para acontecer na sua base (Ter duplicatas de dias) ai realmente temos que fazer uma análise e considerações:

1. Se for para somar as duas linhas

- Troca o SELECTEDVALUE da função que te mandei pelo SUM

2. Se for para pegar o maior valor
- Troca o SELECTEDVALUE pelo MAX
 

3. Se for para o pegar o de maior índice (pq talvez seja o ultimo lançamento do dia)

- Vai no Power Query e no passo antes de adicionar a coluna indice organiza a coluna de data por ordem CRESCENTE.
depois disso é só trocar a medida que eu te mandei por essa:

Saldo =
CALCULATE(
SELECTEDVALUE(Sheet2[Valor Saldo]),
Sheet2[Índice] = MAX(Sheet2[Índice]),
Sheet2[Data Lancamento] = MAX(Sheet2[Data Lancamento]))

 

Se isso resolveu o seu problema, consegue marcar esse comentário como resposta correta?

Ficaria muito agradecido.

essa explicação aqui @Tiago Patricio

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
13 minutos atrás, Tiago Patricio disse:

Boa tarde a todos,

No mapa em excel que envio em anexo, preciso retornar o valor da coluna "Valor Saldo" para cada banco (coluna "Banco") na data mais recente da coluna "Data de Lançamento" , os valores que pretendo retornar são os que estão pintados a amarelo.

Se alguém me puder ajudar por favor.

Obrigado.

Cumprimentos,

 

Duvida 1.xlsx 17 kB · 1 download

Olá, bom dia!

você pode criar uma medida assim

Saldo =
CALCULATE(
SELECTEDVALUE(Sheet2[Valor Saldo]),
Sheet2[Data Lancamento] = MAX(Sheet2[Data Lancamento]))

O resultado em uma matriz ficou tal qual os números pintados da sua planilha:

image.png.8664ce538a34386ac4d544621ce129d8.png

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

  • 0
  • Alunos
1 hora atrás, paulocesarmlf disse:

Olá, bom dia!

você pode criar uma medida assim

Saldo =
CALCULATE(
SELECTEDVALUE(Sheet2[Valor Saldo]),
Sheet2[Data Lancamento] = MAX(Sheet2[Data Lancamento]))

O resultado em uma matriz ficou tal qual os números pintados da sua planilha:

image.png.8664ce538a34386ac4d544621ce129d8.png

Olá Paulo,

eu não mencionei na minha primeira duvida mas o objectivo é criar um cartão com o valor do saldo para cada banco, ou seja ou criar uma medida para cada banco para ser apresentado num cartão, ou em alternativa aproveitar uma medida unica e aplicar um filtro no visual escolhendo os bancos individualmente, não sei qual a melhor opção.

de qualquer forma em relação a solução que apresenta ela resolve esse exemplo, no entanto,  na minha base original ele não está a apanhar todos os bancos, o que estou a achar estranho, será porque no ETL no PQ eu adicionei uma coluna de indice e pode estar a influenciar e a fazer algum filtro?

se me puder dar a sua opinião.

mais uma vez obrigado pela ajuda.

Cumprimentos,

Tiago Patricio. 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
38 minutos atrás, Tiago Patricio disse:

Olá Paulo,

eu não mencionei na minha primeira duvida mas o objectivo é criar um cartão com o valor do saldo para cada banco, ou seja ou criar uma medida para cada banco para ser apresentado num cartão, ou em alternativa aproveitar uma medida unica e aplicar um filtro no visual escolhendo os bancos individualmente, não sei qual a melhor opção.

de qualquer forma em relação a solução que apresenta ela resolve esse exemplo, no entanto,  na minha base original ele não está a apanhar todos os bancos, o que estou a achar estranho, será porque no ETL no PQ eu adicionei uma coluna de indice e pode estar a influenciar e a fazer algum filtro?

se me puder dar a sua opinião.

mais uma vez obrigado pela ajuda.

Cumprimentos,

Tiago Patricio. 

Usa a mesma medida e aplica um filtro de visual, acredito que seja mais fácil e não vai prejudicar tanto a performance (isso para a dúvida dos cartões)

Cara a medida é pra rodar em todos os exemplos, pq nela não indico para fazer somente para o banco A,B,C. Não acredito que seja isso da questão do índice.

Se você conseguir adicionar o pbix de exemplo fica melhor para analisar a questão de modelagem e ver se o problema é nela.

Mas em relação a DAX essa medida é para resolver o seu problema.

 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
1 hora atrás, Tiago Patricio disse:

Olá Paulo,

eu não mencionei na minha primeira duvida mas o objectivo é criar um cartão com o valor do saldo para cada banco, ou seja ou criar uma medida para cada banco para ser apresentado num cartão, ou em alternativa aproveitar uma medida unica e aplicar um filtro no visual escolhendo os bancos individualmente, não sei qual a melhor opção.

de qualquer forma em relação a solução que apresenta ela resolve esse exemplo, no entanto,  na minha base original ele não está a apanhar todos os bancos, o que estou a achar estranho, será porque no ETL no PQ eu adicionei uma coluna de indice e pode estar a influenciar e a fazer algum filtro?

se me puder dar a sua opinião.

mais uma vez obrigado pela ajuda.

Cumprimentos,

Tiago Patricio. 

Uma coisa que também pode estar acontecendo Tiago é que possa ter BANCOS que possuem duplicadas no mesmo dia.

Exemplo:

Banco C tem duas linhas de saldo no dia 05/01/2022 (considera essa data como máximo)

Se isso for realmente para acontecer na sua base (Ter duplicatas de dias) ai realmente temos que fazer uma análise e considerações:

1. Se for para somar as duas linhas

- Troca o SELECTEDVALUE da função que te mandei pelo SUM

2. Se for para pegar o maior valor
- Troca o SELECTEDVALUE pelo MAX
 

3. Se for para o pegar o de maior índice (pq talvez seja o ultimo lançamento do dia)

- Vai no Power Query e no passo antes de adicionar a coluna indice organiza a coluna de data por ordem CRESCENTE.
depois disso é só trocar a medida que eu te mandei por essa:

Saldo =
CALCULATE(
SELECTEDVALUE(Sheet2[Valor Saldo]),
Sheet2[Índice] = MAX(Sheet2[Índice]),
Sheet2[Data Lancamento] = MAX(Sheet2[Data Lancamento]))

 

Se isso resolveu o seu problema, consegue marcar esse comentário como resposta correta?

Ficaria muito agradecido.

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

  • 0
  • Alunos
21 horas atrás, paulocesarmlf disse:

Usa a mesma medida e aplica um filtro de visual, acredito que seja mais fácil e não vai prejudicar tanto a performance (isso para a dúvida dos cartões)

Cara a medida é pra rodar em todos os exemplos, pq nela não indico para fazer somente para o banco A,B,C. Não acredito que seja isso da questão do índice.

Se você conseguir adicionar o pbix de exemplo fica melhor para analisar a questão de modelagem e ver se o problema é nela.

Mas em relação a DAX essa medida é para resolver o seu problema.

 

Bom dia Paulo,

Após analisar o motivo pelo qual a formula funcionou para alguns bancos e não para outros, detectei um ponto em comum nos dois casos, no que não funcionou reparei que existiu mais do que um movimento no próprio dia, por exemplo no dia 25 de janeiro teve mais do que um movimento, nos casos em que tinha apenas um dia ele funcionou.

testei com a base fake que enviei e deu o mesmo problema, o argumento MAX vai considerar apenas o primeiro dia do movimento e ingnorar todos os outros do mesmo dia, segue o PBIX com o teste, a diferença para a minha base é que no meu caso não deu o primeiro valor do movimento do dia, o cartão deu "Blank" 😞 

acho que consegui explicar mais ou menos a questão, no entanto segue o PBIX com o teste e a base.

Cumprimentos,

Teste 1.pbix 241557076_Duvida1 (1).xlsx

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
33 minutos atrás, Tiago Patricio disse:

Bom dia Paulo,

Após analisar o motivo pelo qual a formula funcionou para alguns bancos e não para outros, detectei um ponto em comum nos dois casos, no que não funcionou reparei que existiu mais do que um movimento no próprio dia, por exemplo no dia 25 de janeiro teve mais do que um movimento, nos casos em que tinha apenas um dia ele funcionou.

testei com a base fake que enviei e deu o mesmo problema, o argumento MAX vai considerar apenas o primeiro dia do movimento e ingnorar todos os outros do mesmo dia, segue o PBIX com o teste, a diferença para a minha base é que no meu caso não deu o primeiro valor do movimento do dia, o cartão deu "Blank" 😞 

acho que consegui explicar mais ou menos a questão, no entanto segue o PBIX com o teste e a base.

Cumprimentos,

Teste 1.pbix 41 kB · 0 downloads 241557076_Duvida1 (1).xlsx 17 kB · 0 downloads

Tiago, não consegui entender direito o que você quer.

Se tem mais de um valor no mesmo dia, o que é pra fzer com esses valores? somar? pegar o maior? pegar o ultimo?

Sobe e dá uma olhada na minha explicação, eu ja tinha falado que o erro poderia ser esse e dei algumas opções. Vê se alguma dessas te satisfaz!

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Em 09/04/2022 em 16:09, paulocesarmlf disse:

Uma coisa que também pode estar acontecendo Tiago é que possa ter BANCOS que possuem duplicadas no mesmo dia.

Exemplo:

Banco C tem duas linhas de saldo no dia 05/01/2022 (considera essa data como máximo)

Se isso for realmente para acontecer na sua base (Ter duplicatas de dias) ai realmente temos que fazer uma análise e considerações:

1. Se for para somar as duas linhas

- Troca o SELECTEDVALUE da função que te mandei pelo SUM

2. Se for para pegar o maior valor
- Troca o SELECTEDVALUE pelo MAX
 

3. Se for para o pegar o de maior índice (pq talvez seja o ultimo lançamento do dia)

- Vai no Power Query e no passo antes de adicionar a coluna indice organiza a coluna de data por ordem CRESCENTE.
depois disso é só trocar a medida que eu te mandei por essa:

Saldo =
CALCULATE(
SELECTEDVALUE(Sheet2[Valor Saldo]),
Sheet2[Índice] = MAX(Sheet2[Índice]),
Sheet2[Data Lancamento] = MAX(Sheet2[Data Lancamento]))

 

Se isso resolveu o seu problema, consegue marcar esse comentário como resposta correta?

Ficaria muito agradecido.

Bom dia Paulo,

Desculpa não ter sido claro, o objectivo é sim o ultimo lançamento do dia e apliquei a sua sugestão do ponto 3, resolveu quase a 100%,, ele retorna o ultimo dia do movimento, mas no caso de existirem mais do que um movimento no mesmo dia ele retorna o valor do penultimo dia (imagem em baixo), nos bancos que existe apenas um movimento por dia ele retorna certinho o ultimo movimento (só existe aquele mesmo).

Seguem os exemplos, acho que ele se perde quando tem mais do que um movimento por dia, será problema da coluna de indice? eu criei a coluna "De 0..." 

não estou a ver como posso dizer para ele que quando tiver mais do que um movimento no dia para retornar sempre a ultima linha desse dia...

image.png.53a773739b66e41bec93b614a0be9807.png 

image.png.ce06ac937d5ee5870f9a76b8007eb0c9.png

mais uma vez obrigado pela ajuda.

Abraço,

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