Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
MARCUSSRM23
Contributor II
Contributor II

Calcular diferença entre linhas, que representem a mesma dimensão

Prezados, 

Preciso de ajuda com uma tabela, onde necessito criar um campo que calcula a diferença entre registros de uma tabela,

no meu exemplo calcular a "diferença de kilometragem" no odometro, 

verificando o mesmo veículo,

calculando o odometro desta linha, com a diferença, de um registro imediatamente anterior classificado pela data,

e retornar na linha a dimensão da diferença entre os dois registros, 

fazendo isso para cada linha da tabela, e preenchendo um novo campo

conforme a imagem:

Consumo.png

 

 

 

1 Solution

Accepted Solutions
fernando_tonial
Partner - Specialist
Partner - Specialist

Olá,

Existem várias formas de fazer isso.
1) Via Script de carga, onde podemos fazer a ordenação das linhas pelo Veículo e Data, depois verificar se a linha atual é igual a anterior usando a função Previous(expr).
Previous - função de script | Qlik Sense no Windows Help

Algo assim:

LOAD Data, Veiculo, Odometro,
If(Veiculo = Previus(Veiculo), Previus(Odometro) - Odometro, Null()) as Diferença
Resident Carros
Order By Veiculo, Data;

 
2) Utilizando a função Above([TOTAL] expr [ , offset [,count]]) diretamente na tabela.
Above - função de gráfico | Qlik Sense no Windows Help

Particularmente recomendo a primeira opção, pois caso o usuário faça nova ordenação na tabela, o cálculo pode ser equivocado.

Don't worry, be Qlik.
Tonial

Don't Worry, be Qlik.

View solution in original post

2 Replies
fernando_tonial
Partner - Specialist
Partner - Specialist

Olá,

Existem várias formas de fazer isso.
1) Via Script de carga, onde podemos fazer a ordenação das linhas pelo Veículo e Data, depois verificar se a linha atual é igual a anterior usando a função Previous(expr).
Previous - função de script | Qlik Sense no Windows Help

Algo assim:

LOAD Data, Veiculo, Odometro,
If(Veiculo = Previus(Veiculo), Previus(Odometro) - Odometro, Null()) as Diferença
Resident Carros
Order By Veiculo, Data;

 
2) Utilizando a função Above([TOTAL] expr [ , offset [,count]]) diretamente na tabela.
Above - função de gráfico | Qlik Sense no Windows Help

Particularmente recomendo a primeira opção, pois caso o usuário faça nova ordenação na tabela, o cálculo pode ser equivocado.

Don't worry, be Qlik.
Tonial

Don't Worry, be Qlik.
MARCUSSRM23
Contributor II
Contributor II
Author

Deu certo!

Obrigado Fernando Tonial.