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

Problemas com tabela dinâmica

Prezados,

estou com um problema na construção da tabela dinâmica.

Possuo uma tabela dinâmica onde o campo 'Conta' é uma dimensão calculada com a seguinte expressão

=if(DATA_E1_EMISSAO<=vDataSel,%Conta,

if(DATA_E1_EMIS1<=vDataSel,ContaOrig,%Conta))

e o valor da expressão calculado (Operacional Estático) é

=if(DATA_E1_EMISSAO<=vDataSel,

Sum(if( DATA_E1_EMISSAO<=vDataSel and (len(DATA_E1_BAIXA)=0 or DATA_E1_BAIXA>vDataSel), E1_VALOR)),

if(DATA_E1_EMIS1<=vDataSel,

Sum(if( DATA_E1_EMIS1<=vDataSel and (len(DATA_E5_BAIXA)=0 or DATA_E5_BAIXA>vDataSel), E1_VALOR)),

Sum(if( DATA_E1_EMISSAO<=vDataSel and (len(DATA_E1_BAIXA)=0 or DATA_E1_BAIXA>vDataSel), E1_VALOR))

))

e a tabela gerada é:

!tabdinamica.PNG

Porem, ao mudar para tabela simples o total encontrado é outro:

tabsimples.PNG

E exportando a listagem para o excel e criando tabela dinâmica pela conta obtenho o seguinte resultado:

tabexcel.PNG

Podemos verificar que os resultados é diferente na conta 10105010. Com isso gostaria de saber se existe a possibilidade de apresentar o valor 'real' utilizando tabela dinâmica do QV??

Abraços, Paulo André

1 Solution

Accepted Solutions
nicolett_yuri

O total da tabela dinâmica refaz a sua expressão sem considerar as dimensões.

Quando a expressão é simplesmente um SUM(CAMPO), automaticamente o total estará correto, o problema é quando você começa a utilizar IFs.

A dica para que o seu total seja o somatório de linhas é utilizar o AGGR na sua expressão, por exemplo:

Se sua expressão for: SUM(if( CAMPO = 'x', VALOR))

e suas dimensões: MES e PRODUTO

Você deve alterar sua expressão para:

SUM(AGGR( SUM(if( CAMPO = 'x', VALOR)), MES, PRODUTO))

Assim sua tabela dinâmica calculará o somatório das linhas no total.

View solution in original post

4 Replies
daniel_vale
Creator
Creator

As vezes ele está duplicando algum valor nesse campo, já tentou usar o distinct só para confirmar?

nicolett_yuri

O total da tabela dinâmica refaz a sua expressão sem considerar as dimensões.

Quando a expressão é simplesmente um SUM(CAMPO), automaticamente o total estará correto, o problema é quando você começa a utilizar IFs.

A dica para que o seu total seja o somatório de linhas é utilizar o AGGR na sua expressão, por exemplo:

Se sua expressão for: SUM(if( CAMPO = 'x', VALOR))

e suas dimensões: MES e PRODUTO

Você deve alterar sua expressão para:

SUM(AGGR( SUM(if( CAMPO = 'x', VALOR)), MES, PRODUTO))

Assim sua tabela dinâmica calculará o somatório das linhas no total.

pauloandre
Creator II
Creator II
Author

Yuri,

já tentei utilizar o AGGR, porém como utilizo uma dimensão calculada não deu certo (talvez não tenha feito da forma correta).

E a própria expressão de cálculo possui algumas condicionais onde acredito que o AGGR fica 'perdido'

Clever_Anjos
Employee
Employee

Já conseguiu resolver? Se sim, nos ajude a manter o forum organizado, marcando uma das respostas como "Correta" para fechar o tópico.

Como obter ajuda? Leia antes de postar