Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Função Above

Pessoal, estou com um probleminha na utilização da função above. É o seguinte:

Em um campo estou fazendo a seguinte soma:

Valor do mês anterior da tabela

+

Valor do mês anterior selecionado, do ano anterior.

Estou usando a seguinte fórmula:

Above((Sum({$<PROJECAO_DT_ANO={$(=Only(PROJECAO_DT_ANO)-1)}>}  PROJECAO_QT_PRODUTO*PROJECAO_PRECO_UNIT_FATURADO)) ,1)

+

Above(sum(PROJECAO_PESO_LIQUIDO * PROJECAO_PRECO_UNIT_FATURADO),1)   

Exemplo prático:

Mes de fevereiro de 2012:  Soma de Janeiro de 2012  + Soma de Janeiro de 2011.

Meu problema:
O ano de janeiro de 2012, por exemplo, eu tenho que buscar os valores de dezembro de 2011, mas daí a utilização do Above na minha fórmula não funcionou. Fica em branco... Alguém tem alguma dica?

Segue o print da tabela.

Desde já agradeço.

Juliana Holstein.

1 Solution

Accepted Solutions
aderlanrm
Partner - Specialist
Partner - Specialist

Juliana, esse comportamento do Above está normal, ele pega a linha anterior, então, você terá que fazer uma condicional. Faça um "IF" pegando o ano anterior se o valor for zero ou nulo, dê uma olhada nisso.

Abraço.

Aderlan Rodrigues
Analista, Arquiteto de Dados e Piloto Amador Drone FPV
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)

View solution in original post

4 Replies
aderlanrm
Partner - Specialist
Partner - Specialist

Juliana, esse comportamento do Above está normal, ele pega a linha anterior, então, você terá que fazer uma condicional. Faça um "IF" pegando o ano anterior se o valor for zero ou nulo, dê uma olhada nisso.

Abraço.

Aderlan Rodrigues
Analista, Arquiteto de Dados e Piloto Amador Drone FPV
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)
Not applicable
Author

Olá Aderlan, tudo bem?

Obrigada pela dica, fiz um IF para testar quando é Janeiro, daí faz outro cálculo conforme o gerente me pediu.

Porém tenho uma dúvida ainda, veja se pode me ajudar.

A fórmula que estou utilizando para tratar o meu campo meta  (projeção) é o seguinte:

If (GetFieldSelections(DS_TIPO_PROJECAO) = '% Crescimento Ano',
    (Sum({$<PROJECAO_DT_ANO={$(=only(PROJECAO_DT_ANO)-1)}>} PROJECAO_QT_PRODUTO*PROJECAO_PRECO_UNIT_FATURADO))  * (TESTE)  
     +
     Sum({$<PROJECAO_DT_ANO={$(=only(PROJECAO_DT_ANO)-1)}>} PROJECAO_QT_PRODUTO*PROJECAO_PRECO_UNIT_FATURADO),
    
If (GetFieldSelections(DS_TIPO_PROJECAO) = 'Entrada de Dados',
    (((Sum({$<PROJECAO_DT_ANO={$(=only(PROJECAO_DT_ANO)-1)}>}  PROJECAO_QT_PRODUTO * PROJECAO_PRECO_UNIT_FATURADO)) * (w_var_projecao))
     +
     Sum({$<PROJECAO_DT_ANO={$(=only(PROJECAO_DT_ANO)-1)}>}  PROJECAO_QT_PRODUTO * PROJECAO_PRECO_UNIT_FATURADO)),
    
If(GetFieldSelections(DS_TIPO_PROJECAO) = 'Soma Mês',
   ((Sum({$<PROJECAO_DT_ANO={$(=Only(PROJECAO_DT_ANO)-1)}>}  PROJECAO_QT_PRODUTO*PROJECAO_PRECO_UNIT_FATURADO))
    +
   (Sum({$<PROJECAO_DT_ANO={$(=Only(PROJECAO_DT_ANO)-2)}>}  PROJECAO_QT_PRODUTO*PROJECAO_PRECO_UNIT_FATURADO))),
If (PROJECAO_DT_MES = 'jan',
   (Sum({$<PROJECAO_DT_ANO={$(=Only(PROJECAO_DT_ANO)-1)}>}  PROJECAO_QT_PRODUTO*PROJECAO_PRECO_UNIT_FATURADO)
    +
    Sum({$<PROJECAO_DT_ANO={$(=Only(PROJECAO_DT_ANO))}>}  PROJECAO_QT_PRODUTO*PROJECAO_PRECO_UNIT_FATURADO)),

    If(GetFieldSelections(DS_TIPO_PROJECAO) = 'Teste',
       Sum({$<PROJECAO_DT_ANO={$(=Only(PROJECAO_DT_ANO)-1)}>}  PROJECAO_QT_PRODUTO*PROJECAO_PRECO_UNIT_FATURADO)
       +
       Above(sum(PROJECAO_QT_PRODUTO * PROJECAO_PRECO_UNIT_FATURADO),1) 
      )
    )
   )
  )

O meu problema está no último IF  (= teste), que esta em negrito.

Pensa que eu tenho um campo Meta, onde está esta fórmula,

Atualmente na opção TESTE eu somo o valor do mes selecionado do ano anterior +

a soma do valor que foi faturado no mes anterior.
Por exemplo: FEV 2012 =  Fev2011 +  realizado de Jan/2012.

MAs o que eu preciso que em FEV 2012 fique =  Fev2011 + Valor Meta projetado de JAN/2012.


Eu consigo utilizar o ABOVE, utilizando o mesmo campo onde esta a fórmula, no caso o meu campo Meta?

Veja  meu print, tenho o campo META e o campo REALIZADO, no quadrinho a direita. Atualmente no campo meta,que tem a fórmula acima, uso o ABOVE do campo realizado, para trazer o valor do mes anterior, mas eu preciso trazer o valor do mes anterior, do próprio campo meta.

proje.jpg

Alguma dica,

Desde já grata pela atenção dispensada.

Abs,
Juliana.

aderlanrm
Partner - Specialist
Partner - Specialist

Olá Juliana, desculpe a demora em responder, essa semana tem cido corrida.

Bom... Vamos lá... Tomei um susto com suas formulas! Rsrsrsr...

Não lembro exatamente o que pode ou não com above, teria que fazer testes, mas tente reaproveitar as formulas, seja usando variáveis ou os nomes das expressões, quando possível.

Tente usar o above no nome das expressões, assim, você pegará o resultado delas, sem precisar refazer todo a formula.

Abraço.

Veja exemplo do uso dos nomes das expressões:

Expressões.png

Aderlan Rodrigues
Analista, Arquiteto de Dados e Piloto Amador Drone FPV
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)
Not applicable
Author

Bom dia Aderlan,
Então, até eu me asustei com esta fórmula quando vi ela pronta..

Consegui fazer o above, utilizei ele , colocando o nome da expressão mesmo Above(Meta), e funcionou certinho.

Muito obrigada.

Abs,

Juliana.