Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Criar faixa de horário

Senhores, boa tarde!

Quero criar faixa horária e ñ sei como fazer.
tenho duas tabelas: uma com carros e outras com tempo de viagem. Quero criar uma expressão onde retorne a media do tempo de viagem não pelo horário que o carro saiu e sim por uma faixa horária. exemplo: os carros que saiu entre 06:00 e 06:30, retorne a media de tempo de viagem dessa faixa.
Alguem pode me ajudar?

1 Solution

Accepted Solutions
fernando_tonial
Partner - Specialist
Partner - Specialist

Olá faça assim:

Dados:

LOAD DATA, [Saida do carro], [Tempo de viagem], Interval(Subfield(Classe_TMP,'<',1),'hh:mm') & ' - '& Interval(Subfield(Classe_TMP,'<',3),'hh:mm') AS Classe;

LOAD *, Class([Saida do carro],0.0208333333333) AS Classe_TMP INLINE [

    DATA, Saida do carro, Tempo de viagem

    01/01/14, 05:00, 01:30

    01/01/14, 05:20, 01:40

    01/01/14, 05:30, 01:35

    01/01/14, 05:50, 02:00

    02/01/14, 05:00, 01:00

    02/01/14, 05:20, 01:05

    02/01/14, 05:30, 01:40

    02/01/14, 05:50, 01:30

];

Resultado.

05:00 - 05:3001:18:45
05:30 - 06:0001:41:15

Qlikfique-se.

Tonial

Don't Worry, be Qlik.

View solution in original post

16 Replies
nicolett_yuri

Regimilson, verifique a função Class(), ela vai fazer exatamente o que precisa.

Exemplo de utilização:

class( var,10 ) com var = 23 retorna '20<=x<30'

class( var,5,'valor' ) com var = 23 retorna '20<= valor <25'

class( var,10,'x',5 ) com var = 23 retorna '15<=x<25'

Lembrando que o Class deve ser passado na dimensão do gráfico e na expressão você faz a média do tempo.

Caso queira melhor performance, então deve-se fazer essa faixa diretamente no script, utilizando-se de ifs.

Anonymous
Not applicable
Author

Acredito que a função Class() pode te ajudar, se possível post um exemplo da sua base para que possamos auxiliar melhor:

Exemplo da função Class:

class( var,10 ) com var = 23 retorna '20<=x<30'

Abs.

Not applicable
Author

DATASaida do carroTempo de viagemmedia tempo viagem
01/01/1405:0001:3001:35
01/01/1405:2001:40
01/01/1405:3001:35
01/01/1405:5002:0001:28
02/01/1405:0001:00
02/01/1405:2001:05
02/01/1405:3001:40
02/01/1405:5001:30

Segue exemplo acima

sendo que essa faixa seria de 30 minutos.

EXEMPLO:

(dimensão)  05:00 - 05:30  (expressão) :media tempo viagem 01:35

(dimensão)  05:30 - 06:00  (expressão) :media tempo viagem 01:28

fernando_tonial
Partner - Specialist
Partner - Specialist

Olá faça assim:

Dados:

LOAD DATA, [Saida do carro], [Tempo de viagem], Interval(Subfield(Classe_TMP,'<',1),'hh:mm') & ' - '& Interval(Subfield(Classe_TMP,'<',3),'hh:mm') AS Classe;

LOAD *, Class([Saida do carro],0.0208333333333) AS Classe_TMP INLINE [

    DATA, Saida do carro, Tempo de viagem

    01/01/14, 05:00, 01:30

    01/01/14, 05:20, 01:40

    01/01/14, 05:30, 01:35

    01/01/14, 05:50, 02:00

    02/01/14, 05:00, 01:00

    02/01/14, 05:20, 01:05

    02/01/14, 05:30, 01:40

    02/01/14, 05:50, 01:30

];

Resultado.

05:00 - 05:3001:18:45
05:30 - 06:0001:41:15

Qlikfique-se.

Tonial

Don't Worry, be Qlik.
Not applicable
Author

Isso mesmo que eu quero Fernando, como estou usando planilha do excel, fiz a seguinte adaptação:

LOAD Data,

  SDO.Carro,

  Saida,

  Tempo_Real_Hr,

  Interval(Subfield(Classe_TMP,'<',1),'hh:mm') & ' - '& Interval(Subfield(Classe_TMP,'<',3),'hh:mm') AS Classe;

  LOAD *, Class([Saida],0.0208333333333) AS Classe_TMP

FROM

(biff, embedded labels, table is [Plan1$]);

Porém quando fiz a expressão da média o resultado não bate correto.

Not applicable
Author

A media do tempo de viagem não está correta pq ele está calculando as horas que 1 só carro saiu.

Na verdade eu quero que calcule a media pela faixa de 30 minutos que vários carros possa ter saído.

Entendeu?

fernando_tonial
Partner - Specialist
Partner - Specialist

Muito estranho, para mim esta correto.

Veja arquivo anexo.

DATA Classe Interval(Avg([Tempo de viagem]))
01:30:00
01/01/1405:00 - 05:3001:35:00
01/01/1405:30 - 06:0001:47:30
02/01/1405:00 - 05:3001:02:30
02/01/1405:30 - 06:0001:35:00
Don't Worry, be Qlik.
felipe_dutra
Partner - Creator
Partner - Creator

Regimilson,

O que o mestre Fernando Tonial fez foi criar as faixas de horário para te possibilitar o cálculo da média por estas faixas, independente do carro e de outras dimensões.

O cálculo só será feito por carro se você adicionar a dimensão carro no gráfico.

Talvez você esteja tendo uma interpretação diferente para este cálculo, pois percebi que você apresentou dois resultados (1:35 e 1:28) que não consegui identificar como chegou a eles.

O correto seria:

05:00 - 05:3005:30 - 06:00
05:0001:3005:3001:35
05:2001:4005:5002:00
05:0001:0005:3001:40
05:2001:0505:5001:30
média01:18média01:41

Para testar, crie um gráfico usando apenas a faixa como dimensão e avg([campo do tempo de viagem]) como expressão.

Abs,

Felipe

Not applicable
Author

Parabéns!! A resposta está corretíssima, eu que tinha vacilado.

Meu nobre, mil perdões! Pois estou começando agora - bem no início mesmo.

Se não for abuso, poderia fazer com faixa de 20,30, 60 minutos? Sendo assim posso por a dimensão em grupo e avançar de acordo a faixa escolhida.