Alunos champanjonata Postado Julho 5, 2023 Alunos Postado Julho 5, 2023 Olá pessoal. Caso a medida com dateadd(datas, -1, month) não encontrar valor (nesse caso não tem 03/06/2023, como faria para pegar a próxima data maior que a do mês anterior (no caso 05/06/2023) ?
0 Alunos Solução champanjonata Postado Julho 5, 2023 Autor Alunos Solução Postado Julho 5, 2023 1 hora atrás, Leandro Del Rio disse: Normalmente a dcalendario contempla todos os dias dos anos em que existem dados. Na própria dcalendario você pode caracterizar os dias como úteis ou não úteis. Acredito que não consigo te ajudar. Consegui resolver com a medida abaixo: Basicamente a variável: vDataMaisProxima retorna o que eu preciso. Para 90% dos casos vValor vai ser útil mas caso não tenha valor aí uso o vAlternative...
0 Alunos Leandro Del Rio Postado Julho 5, 2023 Alunos Postado Julho 5, 2023 (editado) @champanjonata, Você pode usar a função COALESCE para quando não retornar um valor para o DATEADD. A segunda parte da solução é utilizar a lógica para buscar a menor datam que seja maior que a data do contexto. Vê se consegue aplicando essa lógica. Se não conseguir, retorna com a dúvida que ajudo com o código. Editado Julho 5, 2023 por Leandro Del Rio Correção
0 Alunos champanjonata Postado Julho 5, 2023 Autor Alunos Postado Julho 5, 2023 4 minutos atrás, Leandro Del Rio disse: @champanjonata, Você pode usar a função COALESCE para quando não retornar um valor para o DATEADD. A segunda parte da solução é utilizar a lógica para buscar a menor datam que seja maior que a data do contexto. Vê se consegue aplicando essa lógica. Se não conseguir, retorna com a dúvida que ajudo com o código. É justamente na lógica que estou quebrando cabeça... deveria ser data > (data - 30) ou pelo menos penso que seria assim....
0 Alunos Leandro Del Rio Postado Julho 5, 2023 Alunos Postado Julho 5, 2023 @champanjonata, segue fórmula: Qtd Mes Anterior + 1 = VAR vMesAnterior = CALCULATE( // retorna data do mes anterior MAX(dCalendario[ID DATA]), DATEADD(dCalendario[ID DATA], -1, MONTH) ) VAR vQtdMesAnterior = CALCULATE( // retorna a quantidade da data do mes anterior [Qtd], dCalendario[ID DATA] = vMesAnterior ) VAR vDataComQtd = CALCULATE( // retornar a primeira data posterior a data do mes anterior que tem quantidade MIN(dCalendario[ID DATA]), FILTER( ALL(dCalendario), dCalendario[ID DATA] > vMesAnterior && [Qtd] ) ) RETURN IF( vQtdMesAnterior > 0, // se a quantidade da data do mês anterior for maior do que zero vMesAnterior, // retorna data do mês anterior vDataComQtd // caso contrário, retorna a primeira data com quantidade )
0 Alunos champanjonata Postado Julho 5, 2023 Autor Alunos Postado Julho 5, 2023 12 minutos atrás, Leandro Del Rio disse: @champanjonata, segue fórmula: Qtd Mes Anterior + 1 = VAR vMesAnterior = CALCULATE( // retorna data do mes anterior MAX(dCalendario[ID DATA]), DATEADD(dCalendario[ID DATA], -1, MONTH) ) VAR vQtdMesAnterior = CALCULATE( // retorna a quantidade da data do mes anterior [Qtd], dCalendario[ID DATA] = vMesAnterior ) VAR vDataComQtd = CALCULATE( // retornar a primeira data posterior a data do mes anterior que tem quantidade MIN(dCalendario[ID DATA]), FILTER( ALL(dCalendario), dCalendario[ID DATA] > vMesAnterior && [Qtd] ) ) RETURN IF( vQtdMesAnterior > 0, // se a quantidade da data do mês anterior for maior do que zero vMesAnterior, // retorna data do mês anterior vDataComQtd // caso contrário, retorna a primeira data com quantidade ) Obrigado pela ajuda Leandro, mas não funcionou... só lembrando que minha dCalendario não tem os dias 3 e 4/06 igual no seu print, pois no meu caso ela contém apenas dias úteis... Veja que copiei seu código e só substituí pelas minhas medidas/campos e mesmo assim não me retorna 05/06/2023:
0 Alunos Leandro Del Rio Postado Julho 5, 2023 Alunos Postado Julho 5, 2023 Você pode mandar um pbix com exemplo?
0 Alunos champanjonata Postado Julho 5, 2023 Autor Alunos Postado Julho 5, 2023 11 minutos atrás, Leandro Del Rio disse: Você pode mandar um pbix com exemplo? Poxa não posso, contém muita informação sensível... mas segue um arquivo txt com a minha dcalendario (somente as datas mesmo), se conseguir usar ela no seu exemplo pra ver se interfere... datas.txt
0 Alunos Leandro Del Rio Postado Julho 5, 2023 Alunos Postado Julho 5, 2023 Normalmente a dcalendario contempla todos os dias dos anos em que existem dados. Na própria dcalendario você pode caracterizar os dias como úteis ou não úteis. Acredito que não consigo te ajudar.
0 Alunos Leandro Del Rio Postado Julho 5, 2023 Alunos Postado Julho 5, 2023 5 minutos atrás, champanjonata disse: Consegui resolver com a medida abaixo: Basicamente a variável: vDataMaisProxima retorna o que eu preciso. Para 90% dos casos vValor vai ser útil mas caso não tenha valor aí uso o vAlternative... Que bom que consegui ajudar!
Pergunta
champanjonata
Olá pessoal.
Caso a medida com dateadd(datas, -1, month) não encontrar valor (nesse caso não tem 03/06/2023, como faria para pegar a próxima data maior que a do mês anterior (no caso 05/06/2023) ?
9 respostass a esta questão
Posts Recomendados
Faça login para comentar
Você vai ser capaz de deixar um comentário após fazer o login
Entrar Agora