Ir para conteúdo
  • 0

Distância percorrida dos últimos 7 dias rodados por veículo


mikhaelaribeiro
Ir para solução Solucionado por gersonggv ,

Pergunta

  • Alunos

Boa tarde pessoal,

Estou à alguns dias tentando fechar essa medida, onde eu preciso somar a distância dos últimos 7 dias percorridos por veículo, ou seja, somar apenas os dias que o veículo teve sua distância > 0 e pular os dias que o veículo não rodou, até dar os 7 dias de dados.

Um detalhe é que a base de veículos é grande, e sempre tem algum veículo que rodou em determinado dia, por isso precisaria que a fórmula olhasse linha a linha por veículo para verificar se o mesmo rodou ou não.

Vou anexar neste uma base de teste onde temos 3 veículos fictícios, com 10 dias de dados cada, onde em alguns dias um desses veículos não rodou, mas os outros sim.

A medida que consegui fazer até o momento foi esta:

Distância últimos 7 dias =

calculate(sum(factFuelConsumption[Distance]),
VALUES(dimVehicles[VehicleId]),
DATESBETWEEN(dCalendario[Date]), 
MAX(dCalendario[Date])-6 , 
MAX(dCalendario[Date])),
factFuelConsumption[Distance] > 0)

Na medida acima o resultado que obtenho é sempre o total da distância percorrida porém no total de dias considerados, a medida considera os dias que o veículo teve distância igual a 0, ou seja, não percorreu, dessa forma ele soma entre 3 à 5 dias de dados dos veículos.

Alguma ideia do que posso mudar para obter 7 dias de distâncias dos veículos?

Teste Autonomia.xlsx

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

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

Boa tarde pessoal,

Estou à alguns dias tentando fechar essa medida, onde eu preciso somar a distância dos últimos 7 dias percorridos por veículo, ou seja, somar apenas os dias que o veículo teve sua distância > 0 e pular os dias que o veículo não rodou, até dar os 7 dias de dados.

Um detalhe é que a base de veículos é grande, e sempre tem algum veículo que rodou em determinado dia, por isso precisaria que a fórmula olhasse linha a linha por veículo para verificar se o mesmo rodou ou não.

Vou anexar neste uma base de teste onde temos 3 veículos fictícios, com 10 dias de dados cada, onde em alguns dias um desses veículos não rodou, mas os outros sim.

A medida que consegui fazer até o momento foi esta:

Distância últimos 7 dias =

calculate(sum(factFuelConsumption[Distance]),
VALUES(dimVehicles[VehicleId]),
DATESBETWEEN(dCalendario[Date]), 
MAX(dCalendario[Date])-6 , 
MAX(dCalendario[Date])),
factFuelConsumption[Distance] > 0)

Na medida acima o resultado que obtenho é sempre o total da distância percorrida porém no total de dias considerados, a medida considera os dias que o veículo teve distância igual a 0, ou seja, não percorreu, dessa forma ele soma entre 3 à 5 dias de dados dos veículos.

Alguma ideia do que posso mudar para obter 7 dias de distâncias dos veículos?

Teste Autonomia.xlsx 16 kB · 7 downloads

Boa Tarde! @mikhaelaribeiro veja se o que anexei te atende. 

 

power bi teste.pbix 624740362_TesteAutonomia.xlsx

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Utilizei esta função abaixo, veja se funciona.

Arquivo em anexo
 

Ult 7 Registros =
var _Placas= SELECTCOLUMNS(VALUES(Dados[PLACA]),"@Nome",Dados[PLACA])
var _Tabela = ADDCOLUMNS(_Placas,"@Valor",sumx(TOPN(7,filter(ALL(Dados),Dados[PLACA]=[@Nome] && Dados[DISTÂNCIA] > 0),Dados[DATA],DESC),Dados[DISTÂNCIA]))
return sumx(_Tabela,[@Valor])

SoluçãoMikhaela.pbix

  • Like 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
1 hora atrás, Joao Barbosa disse:

Boa tarde João, obrigada pela sua resposta!

Porém sua medida vai acumulando a distância, eu precisaria da soma total, pois na tabela que vou demonstrar para o cliente, não tem a coluna de data, então os dados ficam resumidos sendo 1 linha por placa de veículo.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
12 minutos atrás, mikhaelaribeiro disse:

Boa tarde João, obrigada pela sua resposta!

Porém sua medida vai acumulando a distância, eu precisaria da soma total, pois na tabela que vou demonstrar para o cliente, não tem a coluna de data, então os dados ficam resumidos sendo 1 linha por placa de veículo.

Vendo a solução do Gerson entendi o que deveria ser feito .

Link para o comentário
Compartilhar em outros sites

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

Utilizei esta função abaixo, veja se funciona.

Arquivo em anexo
 

Ult 7 Registros =
var _Placas= SELECTCOLUMNS(VALUES(Dados[PLACA]),"@Nome",Dados[PLACA])
var _Tabela = ADDCOLUMNS(_Placas,"@Valor",sumx(TOPN(7,filter(ALL(Dados),Dados[PLACA]=[@Nome] && Dados[DISTÂNCIA] > 0),Dados[DATA],DESC),Dados[DISTÂNCIA]))
return sumx(_Tabela,[@Valor])

SoluçãoMikhaela.pbix 25 kB · 0 downloads

Boa tarde Gerson, obrigada pela sua resposta!

Testei no pbix do cliente e infelizmente não funcionou, trouxe apenas a distância do último dia, anexo um print:

image.png.8d98edb2d1dffb9a17ccbca120a946b4.png

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Em 16/11/2022 em 10:16, gersonggv disse:

Veja se a coluna Data está ordenada. Vá no Power Query e classifique a coluna data em ordem crescente e veja se funciona.

Gerson, conseguimos resolver, o motivo da medida não estar funcionando era por quê tínhamos mais de 1 linha para cada dia, ou seja, no mesmo dia o rastreador do veículo enviava a informação de distância, por isso o TOP N se perdia. O Fabio Marquez de Carvalho Junior nos ajudou agrupando o select na tabela por dia, mantendo assim somente 1 linha para cada veículo e agregando os valores comunicados ao longo do dia. Muito obrigada pela sua ajuda!

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