Skip to main content
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