Alunos vleite099 Postado Novembro 3, 2021 Alunos Compartilhar Postado Novembro 3, 2021 Como faço para pegar o valor do dia anterior do contexto? CALCULATE([LITROS], DATESINPERIOD(dCalendarioDAX[Date], MAX(dCalendarioDAX[Date]),LASTDATE(dCalendarioDAX[Date]),DAY)) exemplo: DATA - PESSOA - LITROS - LITRO ANTERIOR 19/01/2021 - JOAO - 455 - BLANK 21/02/2021 - JOAO - 50 - 455 13/04/2021 - JOAO - 20 - 50 Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Solução Bruno Abdalla de Souza Postado Novembro 4, 2021 Alunos Solução Compartilhar Postado Novembro 4, 2021 LITRO ANTERIOR = VAR vUltimaData = MAXX( FILTER( ALL(FDados[DATA]), FDados[DATA] < MAX(FDados[DATA]) ), [DATA] ) VAR vUltimoLitro = MAXX( FILTER( ALL(FDados), FDados[DATA] = vUltimaData ), [LITROS] ) RETURN vUltimoLitro LITROS.pbix Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Michele Postado Novembro 3, 2021 Alunos Compartilhar Postado Novembro 3, 2021 Oi @vleite099! Para obter uma data anterior ou posterior você pode usar o DATEADD, exemplo: DATEADD(dCalendarioDAX[Date],-1,DAY) Veja se isso te ajuda, caso não e puder colocar um exemplo do seu relatório para ser analisado. https://docs.microsoft.com/pt-br/dax/dateadd-function-dax Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos jooelcosta Postado Novembro 4, 2021 Alunos Compartilhar Postado Novembro 4, 2021 Bom dia. Anexa uma amostra de dados. Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos vleite099 Postado Novembro 4, 2021 Autor Alunos Compartilhar Postado Novembro 4, 2021 15 horas atrás, Michele disse: Oi @vleite099! Para obter uma data anterior ou posterior você pode usar o DATEADD, exemplo: DATEADD(dCalendarioDAX[Date],-1,DAY) Veja se isso te ajuda, caso não e puder colocar um exemplo do seu relatório para ser analisado. https://docs.microsoft.com/pt-br/dax/dateadd-function-dax Eu tentei essa formula tambem, mas não funciona. Acredito que ele pega o dia anterior e tenta ver um dia antes, e não um dia antes da tabela, que vários dias atrás. Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos vleite099 Postado Novembro 4, 2021 Autor Alunos Compartilhar Postado Novembro 4, 2021 10 minutos atrás, jooelcosta disse: Bom dia. Anexado uma amostra de dados. LITROS.pbix Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Bruno Abdalla de Souza Postado Novembro 4, 2021 Alunos Compartilhar Postado Novembro 4, 2021 @vleite099, na sua base de dados tem apenas 3 dados e, neste caso pelo que entendi, não teria nenhum litro anterior no contexto. Poderia mandar uma base um pouquinho maior onde a placa contenha dados anteriores? Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos vleite099 Postado Novembro 4, 2021 Autor Alunos Compartilhar Postado Novembro 4, 2021 30 minutos atrás, Bruno Abdalla de Souza disse: @vleite099, na sua base de dados tem apenas 3 dados e, neste caso pelo que entendi, não teria nenhum litro anterior no contexto. Poderia mandar uma base um pouquinho maior onde a placa contenha dados anteriores? Neste caso não queria levar em conta a placa, apenas trazer o valor do litro anterior da linha, independente de placa ou qualquer outra coluna. Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Bruno Abdalla de Souza Postado Novembro 4, 2021 Alunos Compartilhar Postado Novembro 4, 2021 Só tem um possível problema. Se tiver mais de uma placa no mesmo dia, que valor retorna? Na solução acima, retornaria o maior valor, o que acredito que talvez não seja o que você deseja. Qual seria a regra? Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos vleite099 Postado Novembro 4, 2021 Autor Alunos Compartilhar Postado Novembro 4, 2021 16 minutos atrás, Bruno Abdalla de Souza disse: LITRO ANTERIOR = VAR vUltimaData = MAXX( FILTER( ALL(FDados[DATA]), FDados[DATA] < MAX(FDados[DATA]) ), [DATA] ) VAR vUltimoLitro = MAXX( FILTER( ALL(FDados), FDados[DATA] = vUltimaData ), [LITROS] ) RETURN vUltimoLitro LITROS.pbix 43 kB · 1 download Deu certo, obrigado Bruno Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos vleite099 Postado Novembro 4, 2021 Autor Alunos Compartilhar Postado Novembro 4, 2021 2 horas atrás, Bruno Abdalla de Souza disse: Só tem um possível problema. Se tiver mais de uma placa no mesmo dia, que valor retorna? Na solução acima, retornaria o maior valor, o que acredito que talvez não seja o que você deseja. Qual seria a regra? Com essa formula, se eu tiver a mesma placa descrita mais de uma vez não interfere no resultado. Porem, se eu classificar por placa, de modo que as datas fiquem desordenadas, o valor vai ser sempre da data anterior, e não da linha anterior. Para casos onde a data esta ordenada ela funciona corretamente, mas para casos onde esta classificado por outra coluna, deve-se usar outra formula para que considere a linha acima. Saberia dizer como seria nesse caso? Segue arquivo do caso. LITROS.pbix Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Bruno Abdalla de Souza Postado Novembro 4, 2021 Alunos Compartilhar Postado Novembro 4, 2021 Qual seria o motivo de classificar por outra coluna além da data? Este resultado faria sentido, por exemplo, pegar da placa anterior em ordem alfabética? Não vejo muito sentido nisso. Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
vleite099
Como faço para pegar o valor do dia anterior do contexto?
CALCULATE([LITROS], DATESINPERIOD(dCalendarioDAX[Date], MAX(dCalendarioDAX[Date]),LASTDATE(dCalendarioDAX[Date]),DAY))
exemplo:
DATA - PESSOA - LITROS - LITRO ANTERIOR
19/01/2021 - JOAO - 455 - BLANK
21/02/2021 - JOAO - 50 - 455
13/04/2021 - JOAO - 20 - 50
Link para o comentário
Compartilhar em outros sites
11 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