Ir para conteúdo
  • 0

Consumo entre Eventos


brunopereira
Ir para solução Solucionado por Marcos Pinto ,

Pergunta

  • Alunos

Olá, boa tarde

 

Estou com uma questão em que devo fechar as médias de consumos dos veículos entre certos eventos. 

As médias devem ser fechadas apenas quando o veículo passa pela Matriz, que no exemplo da base seria o fornecedor "A", ou seja, deve-se somar a Litragem e Km percorrido da linha 1 e 2, e após isso da linha 3 e 4, sempre realizando o calculo no fornecedor "A", sendo que isso pode ocorrer de ter mais abastecimentos antes de vir para Matriz. 

 

Ao abastecer na matriz, se encerra o calculo e inicia novamente calculando até ocorrer outro.

No exemplo  anexo o resultado que se espera seria:

Data / Motorista / Veiculo / Km Perc. / Litragem / Média

04/01/2022 / Fulano / AAA0001 / 2.325 / 804,09 / 2,89

11/01/2022 / Fulano / AAA0001 / 2.247 / 903,49 / 2,48

Em resumo, a lógica é, fechamento de média apenas na Matriz, somando-se tudo que ocorreu do ultimo abastecimento da Matriz (sendo que esse não entra, está calculado no anterior) até o atual.

Não consigo pensar em nenhuma lógica para aplicar.. 

 

Agradeço!! 

Exemplo Medias.xlsx

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

Bom dia  bruno,

o dax abaixo resolve o problema, ele calcula o acumulado por isso se vc quer que na tabela apareca somente as linhas do fornecedor A vc precisa filtrar a tabela para quando o fornecedor = A.

sem o filtro na tabela vc vai receber o acumulado ate o dia que for para a matriz A de novo depois vai zerar... e recomecar a calcular.  como na figura abaixo.

image.png.371077e4a4261a81cfe64c8e0f0d97c3.png

Formula Dax abaixo 

 Total Media Ate Matriz A = 
var lastA =
 CALCULATE(
LASTDATE(Plan1[dataabastecimento])
,Plan1[fornecedor]="A",
 ALL(Plan1[dataabastecimento]), Plan1[dataabastecimento] < MAX(Plan1[dataabastecimento] )
)
var somaDifMarcadr =
CALCULATE(
SUM(Plan1[diferencamarcador]),
ALL(Plan1[dataabastecimento]),ALL(Plan1[fornecedor])
, Plan1[dataabastecimento] <= MAX(Plan1[dataabastecimento]),
Plan1[dataabastecimento] > lastA
)
var somaCobustivel = 
CALCULATE(
SUM(Plan1[quantidadecombustivel]),
ALL(Plan1[dataabastecimento]),ALL(Plan1[fornecedor])
, Plan1[dataabastecimento] <= MAX(Plan1[dataabastecimento]),
Plan1[dataabastecimento] > lastA
)
return 
DIVIDE(somaDifMarcadr,somaCobustivel,BLANK()
)

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