Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
RafaMartins
Creator II
Creator II

Medida com Set analysis para dimensão hierárquica no Qlik Sense

Boa tarde Senhores,

Estou tendo dificuldades em conseguir aplicar uma medida para uma dimensão hierárquica.

Explicando melhor tenho um gráfico combinado onde minha dimensão são os anos em hierarquia com filiais. Onde tenho como barra os valores de venda para cada ano e preciso adicionar um linha com a variação de ano para ano. Seguem uma imagem de como fica o gráfico com esta linha feita utilizando variáveis calculadas .

O meu problema se encontra em criar uma expressão para essa variação de forma que obedeça a hierarquia junto a medida de valor, utilizando essa expressão:

if(ANO='2015','0',
if(ANO='2016',((sum({$<ANO={'2016'}>} [Custo Real])/sum({$<ANO={'2015'}>} [Custo Real])-1)*100),
if(ANO='2017',((sum({$<ANO={'2017'}>} [Custo Real])/sum({$<ANO={'2016'}>} [Custo Real])-1)*100),
if(ANO='2018',((sum({$<ANO={'2018'}>} [Custo Real])/sum({$<ANO={'2017'}>} [Custo Real])-1)*100),
if(ANO='2019',((sum({$<ANO={'2019'}>} [Custo Real]/11)*254)/sum({$<ANO={'2018'}>} [Custo Real])-1)*100)))))

Eu conseguir fazer com que sejá calculada a variação, porem ela só apresenta valor quando filtro um ano, se não estiver com filtro aplicado ela não mostra valor.

Alguém poderia me ajuda? 

PS:(A linha na imagem foi criada com o calculo de ano/ano dentro de variáveis, então não consigo aplicar hierarquia a ela) 

1 Solution

Accepted Solutions
lfetensini
Partner - Creator II
Partner - Creator II

Olá.

Sua fórmula está determinando um ano para que o IF seja verdadeiro, por isso ocorre o resultado obtido.

A ideia é você não fazer o IF depender do filtro, e sim do simples fato de andar entre os conteúdos da dimensão daquele objeto.


Vamos começar pelo simples, a fórmula dinâmica que vai medir o crescimento ao longo dos conteúdos de dimensão de forma natural é:

(
 Sum(VALOR)            // Ano atual
 /
 Above(Sum(VALOR), 1)  // Ano anterior (Above 1) - Ele indica que divide pelo conteúdo anterior, no teu caso é o ANO
)
-1


A questão é que você quer um cálculo diferenciado para quando se tratar do ano atual. Então fica assim:

(

 If(ANO <> Year(Today()),
  Sum(VALOR),                       // Se não for o ano atual, faz o cálculo padrão
  (Sum(VALOR / 11)*254)  // Se for o ano atual, faz um calculo diferente
 )

 /
 
 Above(Sum(VALOR), 1)      // Ano anterior (Above 1)

)

-1



Support your colleagues. Remember to "like" the answers that are helpful to you and flag as "solved" the one that helped you solve. Cheers.

View solution in original post

2 Replies
lfetensini
Partner - Creator II
Partner - Creator II

Olá.

Sua fórmula está determinando um ano para que o IF seja verdadeiro, por isso ocorre o resultado obtido.

A ideia é você não fazer o IF depender do filtro, e sim do simples fato de andar entre os conteúdos da dimensão daquele objeto.


Vamos começar pelo simples, a fórmula dinâmica que vai medir o crescimento ao longo dos conteúdos de dimensão de forma natural é:

(
 Sum(VALOR)            // Ano atual
 /
 Above(Sum(VALOR), 1)  // Ano anterior (Above 1) - Ele indica que divide pelo conteúdo anterior, no teu caso é o ANO
)
-1


A questão é que você quer um cálculo diferenciado para quando se tratar do ano atual. Então fica assim:

(

 If(ANO <> Year(Today()),
  Sum(VALOR),                       // Se não for o ano atual, faz o cálculo padrão
  (Sum(VALOR / 11)*254)  // Se for o ano atual, faz um calculo diferente
 )

 /
 
 Above(Sum(VALOR), 1)      // Ano anterior (Above 1)

)

-1



Support your colleagues. Remember to "like" the answers that are helpful to you and flag as "solved" the one that helped you solve. Cheers.
RafaMartins
Creator II
Creator II
Author

Muito obrigado, ajudou muito.