Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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.
Desde já agradeço.
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))
O total deveria ser o somatório das linhas?
exatamente!
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.
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:
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))
Tente a sugestão do Yuri. Se não funcionar, use Dimensionality() para efetuar cálculos diferentes entre as linhas de detalhe e total.
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?
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.
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?