Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
thiago_mlg
Creator II
Creator II

TOTAIS ERRADOS, QUANDO USO 1 EXPRESSÃO CONDICIONAL

Bom dia,

Gostaria de saber se tem alguma forma de resolver este problema.

Tenho uma tabela de despesas realizado x orçado. Ainda nesta tabela, para a parte de despesa (realizado) eu faço uma condicional utilizando dois campos de valores para verificar se eu já tenho o valor realizado, se não eu coloco o valor orçado.

Acontece que quando eu faço essa condicional a tabela nao me apresenta os totais corretos, quando coloco para mostrar os subtotais da aba apresentação, ele me apresenta os totais como se eu utilizasse apenas um campo de valor na expressão.

Expressão da coluna despesas:

     IF(SUM({<PERIODO_INTSAP = {'$(= monthname(today()))'} >}VALOR_REALIZADO) > 100000000,

  IF(PERIODO_INTSAP <= MonthName(Today()), SUM(VALOR_REALIZADO), SUM(VALOR_ORCADO)),

  IF(PERIODO_INTSAP < MonthName(Today()), SUM(VALOR_REALIZADO), SUM(VALOR_ORCADO)))

Expressão da coluna Orçado:

sum(VALOR_ORCADO)

AGORA NOTE QUE NA TABELA ABAIXO OS TOTAIS ESTÃO IGUAIS, OU SEJA, CALCULANDO AS DUAS COLUNAS COMO SE FOSSE ORÇADO.

Sem título.jpg

Desde já agradeço.

1 Solution

Accepted Solutions
nicolett_yuri

Como você esta utilizando tabela dinâmica, você não pode habilitar o recurso do somatório de linhas, porém você pode utilizar a função AGGR para fazer isso.

Em sua expressão:

SUM(AGGR(IF(SUM({<PERIODO_INTSAP = {'$(= monthname(today()))'} >}VALOR_REALIZADO) > 100000000,

  IF(PERIODO_INTSAP <= MonthName(Today()), SUM(VALOR_REALIZADO), SUM(VALOR_ORCADO)),

  IF(PERIODO_INTSAP < MonthName(Today()), SUM(VALOR_REALIZADO), SUM(VALOR_ORCADO))),DIMENSAO_MES,DIMENSAO_ANO))

View solution in original post

12 Replies
nicolett_yuri

O total deveria ser o somatório das linhas?

thiago_mlg
Creator II
Creator II
Author

exatamente!

lucianosv
Specialist
Specialist

Bom dia.

O que está selecionado na aba Expressões, Modo Total?

Teste com as opções Soma de Linhas e Total da Expressão.

thiago_mlg
Creator II
Creator II
Author

Luciano,

quase certo. O unico problema é que essa funcionalidade só funciona para tabela simples, e eu preciso utilizar tabela dinamica, pois com ela consigo pivotar para ficar igual a imagem la de cima.

com a tabela simples funciona, só que fica disposto assim:

Sem título.jpg

nicolett_yuri

Como você esta utilizando tabela dinâmica, você não pode habilitar o recurso do somatório de linhas, porém você pode utilizar a função AGGR para fazer isso.

Em sua expressão:

SUM(AGGR(IF(SUM({<PERIODO_INTSAP = {'$(= monthname(today()))'} >}VALOR_REALIZADO) > 100000000,

  IF(PERIODO_INTSAP <= MonthName(Today()), SUM(VALOR_REALIZADO), SUM(VALOR_ORCADO)),

  IF(PERIODO_INTSAP < MonthName(Today()), SUM(VALOR_REALIZADO), SUM(VALOR_ORCADO))),DIMENSAO_MES,DIMENSAO_ANO))

lucianosv
Specialist
Specialist

Tente a sugestão do Yuri. Se não funcionar, use Dimensionality() para efetuar cálculos diferentes entre as linhas  de detalhe e total.

thiago_mlg
Creator II
Creator II
Author

Maravilha, funcionou certinho..Valeu Yurii..

Só para tirar a dúvida, sempre para totais em tabela dinamica, eu uso aggr ou só em casos específicos como este?

nicolett_yuri

A tabela dinâmica sempre refaz os cálculos de todas as dimensões para fazer o total, por isso o número não é o somatório das linhas. Isso geralmente ocorre quando existe divisões e médias por exemplo.

Quando você precisa que o total seja o somatório ou média, você pode utilizar o AGGR (ou dimensionality como o próprio Luciano Vasconcelos falou), mas SEMPRE tome cuidado com a performance.

thiago_mlg
Creator II
Creator II
Author

Yuri, é possivel agrupar por grupos? Ou seja, na tabela acima, eu estou utilizando as dimensões ano, mes. porem gostaria de usar uma dimensão de grupo, é possivel?