Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik Connect 2026 Agenda Now Available: Explore Sessions
cancel
Showing results for 
Search instead for 
Did you mean: 
gabrielperin
Contributor II
Contributor II

Somar datas

Olá comunidade Qlik Sense

Preciso saber o tempo que um veículo ficou parado em manutenção baseado nas ordens de serviço. 

As informações aparecem da seguinte forma:

OS   |    Início   |    Final

2554    |     01/02/2022    |   03/02/2022

2555    |     02/02/2022    |   05/02/2022

2556    |     08/02/2022    |   15/02/2022

...

O problema é o seguinte, se eu fizer (Início - Final) e somar as OS, eu vou ter somas sobrepostas, pois pode acontecer de uma ordem de serviço seja aberta sem que a anterior seja fechada. 

Como eu poderia fazer a soma sem a sobreposição de datas? 

Labels (5)
1 Solution

Accepted Solutions
gabrielperin
Contributor II
Contributor II
Author

Muito obrigado pela dica. Encontrei a solução de outra maneira:

As OS's que se encontram abertas eu substitui por Today():

If(IsNull(Final), Today(), Final)

Porém ainda ocorre OS's com datas sobrepostas. Então realizei a seguinte tratativa:

If(Inicio <= Previous(Final), Final - Previous(Final), Final - Inicial);

Dessa forma, se uma OS for aberta antes da anterior ser encerrada, ele utiliza a Final do registro anterior como inicial, driblando a sobreposição!

 

Agradeço a contribuição!!

Gabriel Perin

Analista de BI

 

View solution in original post

2 Replies
Thiago_Justen_

Olá @gabrielperin,

Bem, seria interessante você somar somente as que se encontram encerradas. Para tanto, se você não tiver esse campo, sugiro criar um campo de Status para a OS e somar apenas OS de Status "Encerrada". Assim:

Sum({<Status={"encerrada"}>} Interval(Final-Inicio))

 

Ou ainda, se não quiseres criar o campo e considerando que OS em Aberto não possui data Final preenchida.:

Sum({<Final={"*"}>} Interval(Final-Inicio))

 Quaisquer dúvidas, pode me chamar: (24) 98870-0533

 

Abs e Sucesso!!

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
gabrielperin
Contributor II
Contributor II
Author

Muito obrigado pela dica. Encontrei a solução de outra maneira:

As OS's que se encontram abertas eu substitui por Today():

If(IsNull(Final), Today(), Final)

Porém ainda ocorre OS's com datas sobrepostas. Então realizei a seguinte tratativa:

If(Inicio <= Previous(Final), Final - Previous(Final), Final - Inicial);

Dessa forma, se uma OS for aberta antes da anterior ser encerrada, ele utiliza a Final do registro anterior como inicial, driblando a sobreposição!

 

Agradeço a contribuição!!

Gabriel Perin

Analista de BI