Skip to main content
Announcements
Live today at 11 AM ET. Get your questions about Qlik Connect answered, or just listen in. SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
V_Andrade
Contributor
Contributor

Expressão baseada em duas ranges diferentes

Oi pessoal, tudo bem?

Estou travado em algo que acredito que seja simples, mas pra mim é complicado, porque sou novo no Qlikview e no set analysis. O que estou tentando fazer é: na coluna HIGH encontrar o valor mais alto e sua respectiva data, porque assim terei a base para as duas expressões que quero. Exemplo:

O valor mais alto e data: 97.580    (23/01/2019 08:00)

1ª Expressão:  
O valor mais baixo ANTES DE "23/01/2019 08:00": 43,800    (21/01/2019 04:00)
Resultado: um aumento de 122,79% 

2ª Expressão:
O valor mais baixo DEPOIS DE "23/01/2019 08:00": 43,500   (23/01/2019 21:00)
Resultado: uma diminuição de 55,42%

Estou usando a expressao:
if(firstsortedvalue (DISTINCT DATE_TIME, -HIGH) > firstsortedvalue (DISTINCT DATE_TIME, LOW), ((Max(HIGH)-Min(LOW)) / Min(LOW)),-( (Max(HIGH)-Min(LOW)) / Max(HIGH) ))
Mas não é bem isso que quero, porque pega o valor mais baixo(LOW) em qualquer data sem fazer a distinção da data respectiva do valor mais alto.

PRODUTOLOWHIGHDATE_TIME
A44.15044.77021/01/2019 00:00
A44.09044.39021/01/2019 01:00
A44.01044.44021/01/2019 02:00
A43.97044.47021/01/2019 03:00
A43.80044.36021/01/2019 04:00
A43.86044.90021/01/2019 05:00
A44.13044.49021/01/2019 06:00
A44.13044.71021/01/2019 07:00
A43.86044.49021/01/2019 08:00
A43.85044.26021/01/2019 09:00
A44.23045.31021/01/2019 10:00
A44.72045.70021/01/2019 11:00
A45.20045.72021/01/2019 12:00
A44.75045.38021/01/2019 13:00
A44.67046.40021/01/2019 14:00
A45.47050.50021/01/2019 15:00
A47.69052.90021/01/2019 16:00
A49.13056.32021/01/2019 17:00
A53.55059.53021/01/2019 18:00
A55.55058.06021/01/2019 19:00
A53.97057.00021/01/2019 20:00
A53.56055.40021/01/2019 21:00
A53.95055.75021/01/2019 22:00
A53.36055.68021/01/2019 23:00
A53.65055.28022/01/2019 00:00
A54.14058.14022/01/2019 01:00
A53.93056.19022/01/2019 02:00
A51.60054.67022/01/2019 03:00
A52.05052.79022/01/2019 04:00
A52.12053.02022/01/2019 05:00
A52.20053.50022/01/2019 06:00
A51.00052.72022/01/2019 07:00
A50.22056.34022/01/2019 08:00
A52.07055.31022/01/2019 09:00
A52.87055.00022/01/2019 10:00
A52.09054.05022/01/2019 11:00
A53.05055.10022/01/2019 12:00
A55.03058.50022/01/2019 13:00
A55.52062.50022/01/2019 14:00
A60.07064.37022/01/2019 15:00
A59.32062.23022/01/2019 16:00
A58.60061.19022/01/2019 17:00
A58.58059.97022/01/2019 18:00
A57.93061.58022/01/2019 19:00
A59.80063.71022/01/2019 20:00
A60.44063.66022/01/2019 21:00
A61.60064.50022/01/2019 22:00
A63.20064.50022/01/2019 23:00
A63.26069.69023/01/2019 00:00
A67.85074.99023/01/2019 01:00
A72.00078.80023/01/2019 02:00
A71.51076.47023/01/2019 03:00
A71.67073.76023/01/2019 04:00
A73.23079.98023/01/2019 05:00
A75.13085.78023/01/2019 06:00
A80.68089.20023/01/2019 07:00
A88.50097.58023/01/2019 08:00
A79.37093.44023/01/2019 09:00
A76.56081.60023/01/2019 10:00
A73.69080.39023/01/2019 11:00
A74.83077.60023/01/2019 12:00
A75.12078.99023/01/2019 13:00
A72.80075.88023/01/2019 14:00
A73.24075.27023/01/2019 15:00
A72.11074.40023/01/2019 16:00
A72.34074.80023/01/2019 17:00
A73.80078.74023/01/2019 18:00
A73.32077.65023/01/2019 19:00
A51.06053.14023/01/2019 20:00
A43.50052.98023/01/2019 21:00
A51.52052.57023/01/2019 22:00
A51.55052.74023/01/2019 23:00


Qualquer ajuda é bem vinda,

Valeu,

Vinicius

4 Replies
JacksonAlfonso
Creator
Creator

Para pegar os valores seriam essas expressões, não sei se é essa a duvida!

Produto MAIOR Valor = FirstSortedValue(PRODUTO, -HIGH)
Data do MAIOR Valor  = FirstSortedValue(DATE_TIME, -HIGH)

 

Produto MENOR Valor = FirstSortedValue(PRODUTO, HIGH)
Data do MENOR Valor  = FirstSortedValue(DATE_TIME, HIGH)

Att,

V_Andrade
Contributor
Contributor
Author

Oi Jackson,

Obrigado pela resposta, mas essa questão de pegar a DATA do menor ou do maior valor e também o VALOR(preco) deles eu consegui. O que eu estou tentando fazer é:

A partir do momento que tenho a DATA do valor mais alto (por exemplo foi dia 25/02 ) dai quero saber qual é a data do menor valor MAS* só olhando as datas anteriores deste dia 25/02.

Porque isso? porque o menor valor pode estar depois desta data 25/02 e não quero isso. Quero que ele pegue o menor valor mas* so olhando antes desta data, sacou?

Att,

JacksonAlfonso
Creator
Creator

Já tentou com setanalysis, tipo assim:

Firstsortedvalue({<data={"<$(=firstsortedvalue(data,-high)"}>}data, High)

Desculpa algum erro mandei pelo celular !!!
👍🏻
V_Andrade
Contributor
Contributor
Author

Oi Jackson, não funcionou, deu null Smiley Sad

FirstSortedValue({<DATE_TIME={"<$(=firstsortedvalue(DATE_TIME,-HIGH)"}>}DATE_TIME, HIGH)

O que eu tenho são:
DATA_MAX -> Data do maior valor
FirstSortedValue(DISTINCT DATE_TIME, -HIGH)

PRECO_MAX -> Maior valor
FirstSortedValue(DISTINCT HIGH, -HIGH)

 
Eu consegui assim:
FirstSortedValue(DISTINCT {$<DATE_TIME={"<25/02/2019 18:00"}>} DATE_TIME, LOW)

Deu certo mas definindo manualmente a data/hora, você sabe como consigo mudar esse "<25/02/2019 18:00" pela função FirstSortedValue(DISTINCT DATE_TIME, -HIGH)? Ou melhor ainda pelo nome da expressão que é DATA_MAX?

Att,

Vinicius