Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bom dia!
No arquivo em anexo tenho um campo chamado ETAPA e outro chamado DATA_ETAPA. Preciso saber como fazer para calcular o tempo de alteração quando a ETAPA muda. O cálculo será feito utilizando o campo DATA_ETAPA. A quem responder, obrigado.
Olá, tenta assim:
TMP_DADOS:
LOAD NR_DOCUMENTO,
STATUS,
DATA_EMISSAO,
PACS_EQUIPE_GESTORA,
ETAPA,
USUARIO,
DATA_ETAPA
FROM
[Pasta1.xls]
(biff, embedded labels, table is [Plan1$]);
DADOS:
LOAD NR_DOCUMENTO,
STATUS,
DATA_EMISSAO,
PACS_EQUIPE_GESTORA,
ETAPA,
USUARIO,
DATA_ETAPA,
If(NR_DOCUMENTO = Previous(NR_DOCUMENTO),DATA_ETAPA-Previous(DATA_ETAPA),Null()) As DuraçãoEtapa
Resident TMP_DADOS
Order by NR_DOCUMENTO, DATA_ETAPA;
DROP Table TMP_DADOS;
Depois na interface do usuário utilize a seguinte expressão:
Interval(DuraçãoEtapa)
Abraços.
Tonial.
Valério,
Ainda sou iniciante, mas encontrei algo que pode ser que te ajude...
http://community.qlik.com/message/316919#316919
Tem um rotina de cálculo de horas que voce pode adaptar para o que precisa.
Luiz Cláudio
Obrigado pela resposta Luiz Claudio mas não me atende. Eu preciso calcular o intervalo de tempo linha a linha sempre que o campo ETAPA muda.
Num(Year(Date1)) - Num(Year(Date2)) --> Diferença de anos
Num(Month(Date1)) - Num(Month(Date2)) --> Diferença de meses
Num(Week(Date1)) - Num(Week(Date2)) --> Diferença em semanas
Num(Date1) - Num(Date2)) --> Diferença em dias.
Alguma das funções acima te ajuda?
Bom dia,
Acredito que funções inter-registros resolvam seus problemas, pois vc precisa realizar uma operação do registro atual com o próximo.
Verifique no help do Qlikview sobre ABOVE(), BELOW(), BEFORE() e AFTER()
Assim que eu tiver um tempo posto um exemplo.
Abraços!!
Não Leonardo. Acho que não me fiz entender. kkkkkkkkk. Na verdade do campo DATA_ETAPA devo considerar apenas a hora. Por exemplo eu sai do campo ETAPA, do valor RS02 - Em Complementação que no campo DATA_ETAPA tem o valor
04/19/2013 17:29:39 |
e fui para o valor RS05 - Aguardando Execução do campo ETAPA que no campo DATA_ETAPA tem o valor
04/19/2013 17:40:37 |
. Se eu pegar o o último valor e diminuir do primeiro vou descobrir uma diferença de 0:10:58. Preciso fazer isto através de um script no qlikview. Sempre que o campo ETAPA mudar preciso pegar o valor dele no campo DATA_ETAPA e diminuir do campo anterior. É este cálculo que preciso.
Olá, tenta assim:
TMP_DADOS:
LOAD NR_DOCUMENTO,
STATUS,
DATA_EMISSAO,
PACS_EQUIPE_GESTORA,
ETAPA,
USUARIO,
DATA_ETAPA
FROM
[Pasta1.xls]
(biff, embedded labels, table is [Plan1$]);
DADOS:
LOAD NR_DOCUMENTO,
STATUS,
DATA_EMISSAO,
PACS_EQUIPE_GESTORA,
ETAPA,
USUARIO,
DATA_ETAPA,
If(NR_DOCUMENTO = Previous(NR_DOCUMENTO),DATA_ETAPA-Previous(DATA_ETAPA),Null()) As DuraçãoEtapa
Resident TMP_DADOS
Order by NR_DOCUMENTO, DATA_ETAPA;
DROP Table TMP_DADOS;
Depois na interface do usuário utilize a seguinte expressão:
Interval(DuraçãoEtapa)
Abraços.
Tonial.
Fico no aguardo Eduardo. Obrigado.
Acho que é isso que vc precisa...
=Interval(
(RangeMin(frac(DATA_ETAPA), MakeTime(18))
- RangeMax(frac(DATA_EMISSAO), MakeTime(8)))
+ (NetWorkDays(DATA_EMISSAO, DATA_ETAPA-1) * MakeTime(10)) // Only 10 hours per whole day
)
Deu certo. Obrigado Tonial.