2017

Olá Qlikers,

Como último post de 2017,  resolvi escrever sobre 2 fucionalidades muito poderosas para construção de expressões em QlikView / Qlik Sense. O qualificador TOTAL e a função AGGR

 

Se você já a trabalha algum tempo com o Qik, você já deve ter usado o qualificador total na sua expressão de agregação para calcular por exemplo % do produto sobre total de vendas, ou mesmo obter a maior venda dentro de um agrupamento de dimensão,

 

Com o  qualificador TOTAL podemos obter o total geral da expressão ou obter subtotais.

 

Parao obter subtotais via de regra os campos devem estar declarados como dimensões do seu gráfico.

 

Mas existe uma situação peculiar que é o uso do TOTAL com campos de subtotais sem que estes campos estejam declarados na dimensão do seu gráfico ! E para conseguir isso , utilizamos o AGGR.

 

Total+AGGR.png

Para descobrir como obter este resultado utilizando AGGR , acesse  http://www.qlikers.com.br/combinando-qualificador-total-e-aggr/

 

Anexei o qvw de exemplo, mas como utilizo o qlikview desktop com licença. O documento não deverá abrir nos desktops com personal edition.

 

Feliz 2018 !

Clever Anjos

Totais em gráficos

Posted by Clever Anjos Dec 7, 2017

Traduzido daqui : autorizado pelo Hic

O total em um gráfico não é a soma das linhas individuais em um gráfico.

Ao invés disso, o total e os subtotais são calculados utilizando-se a expressão, mas em um subconjunto maior dos dados que data linha em especial.

Pode ser que os dois métodos resultem nos mesmos números, mas algumas vezes existe uma diferença muito grande.

Um exemplo disso é quando você utiliza uma função não-linear, como por exemplo Count(Distinct ...) como expressão. O exemplo abaixo demonstra bem isso

A origem dos dados (esquerda) relaciona um país para cada estado, e se você contar o número de países distintos para cada estado utilizando Count(distinct Country) você terá o gráfico da direita.

Cada estado pertence a apenas um país e o número total de países é 2, então o gráfico possui 4 linhas.

 

Um outro caso é quando você possui uma relação muitos-para-muitos nos seus dados.

No exemplo abaixo, existem três produtos, cada um com um volume de vendas. Cada produto pode pertencer a vários grupos de produtos então as vendas totais para cada grupo de produtos não pode ser somado: o total será menor que a soma das linhas individuais, já que existe uma sobreposição entre os grupos de produtos.

A sumarização é executada na tabela fato e não no gráfico.

Uma outra maneira de descrever isso é dizer que uma nota de dólar pertence a ambos grupos de produtos e seria contada duas vezes se você apenas somar as linhas. Em ambos casos, Qlik irá mostrar os valores corretos para os dados apresentados. Apenas somar as linhas seria incorreto

Então, como isso afeta você como um desenvolvedor de aplicação?

Normalmente, não muito.

Mas é importante ficar atento e eu (HIC) sugiro fazer o seguinte:

  • Quando você constrói sua expressão você deve ficar concentrado na linha de totalização. Normalmente, a expressão estará correta também para as linhas individuais.
  • Sempre use funções de agregação . Isso irá garantir que o Qlik seja capaz de calcular o valor corretamente.
  • Se você quiser uma média na linha de totalização, você deveria dividir seu valor por Count(distinct <Dim>). Fazendo assim, tanto a totalização quanto os valores por linha (onde o contador = 1) ficarão corretos. Exemplo
         Sum( Amount ) / Count( distinct Customer )
  • Nos casos que você quiser mostrar algo completamente diferente na linha de total, você deveria avaliar a função Dimensionality()  que retorna 0, 1, 2, …  dependendo do nível de agregação do seu gráfico (total, subtotal ou detalhe). Exemplo
          If( Dimensionality() = 0, <Total line expression>, <Individual line expression> )

Mas e se você quiser que a o total seja a soma das linhas? Eu não quero que a expressão seja calculada sobre o conjunto completo dos dados, mas a soma das linhas. Como fazer? Existem duas maneiras de fazer isso. A primeira é usar a função Aggr() na sua expressão

          Sum( Aggr( <Original expression> , <Dimension> ) )

Isso funciona em todos os objetos. Para uma Gráfico Tabela simples, você tem acesso à uma funcionalidade na aba Expressões que permite a você definir como deve ser feita a totalização

Configurando como acima, "Soma das Linhas" mudará o comportamento do gráfico para exatamente o que diz: a soma das linhas HIC

 

Link : https://www.clever.com.br/totais-em-graficos/

Filter Blog

By date:
By tag: