Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Ajuda para calcular Total de tabela dinâmica

Pessoal,

Preciso de ajuda para calcular o total de uma tabela dinâmica.

Prazo Acumulado.PNG

Estou calculando o Prazo Ponderado de pagamento, que para o mês de janeiro deveria ser igual 59,59, conforme podemos ver na coluna Prazo Ponderado Acumulado que criei apenas para que visualizassem qual o resultado esperado. Preciso que o valor apareça no Total do Prazo Ponderado.

Dimensões:

Mês/Ano Emissão: Compra.MES_ANO_EMISSAO

Prazo Médio: Compra.PRAZO_MEDIO

Métricas:

Valor: =If(IsNull(Sum(Compra.VALOR_TOTAL)), 0, Sum(Compra.VALOR_TOTAL))

Peso: =Sum(Compra.VALOR_TOTAL) / Aggr(NODISTINCT Sum(Compra.VALOR_TOTAL), Compra.MES_ANO_EMISSAO)

Prazo Ponderado: =Round(Compra.PRAZO_MEDIO * ([Peso]), 0.01)

Prazo Ponderado Acumulado: =If(IsNull(Above([Prazo Ponderado Acumulado])), 0, Above([Prazo Ponderado Acumulado])) + Round(Compra.PRAZO_MEDIO * ([Peso]), 0.01)

Vi em outros posts o pessoal revolvendo questões similares com o uso do Aggr, testei aqui de diversas formas sem sucesso, acredito que seja porque o cálculo do Prazo Ponderado não utilize Sum(). O cálculo das linhas é uma multiplicação do Prazo Médio x Peso, e o Total seria a soma destas linhas.

Tentei utilizar Dimensionality() e a coluna auxiliar Prazo Ponderado Acumulado, para que no caso da linha de Total (Dimensionality() = 0), calculasse o máximo da coluna Prazo Ponderado Acumulado, porém sem sucesso.

=If(Dimensionality() = 0,

    Max([Prazo Ponderado Acumulado]),

    Round(Compra.PRAZO_MEDIO * [Peso], 0.01)

    )

Alguém já passou por algum caso semelhante e conseguiu resolver?

Obrigado!

Guilherme

1 Solution

Accepted Solutions
Not applicable
Author

Pessoal,

Resolvido!

Ficou da seguinte forma:

Prazo Ponderado = Sum(Aggr(NODISTINCT Aggr(DISTINCT Sum(Compra.PRAZO_MEDIO) / Count(Compra.PRAZO_MEDIO), Compra.PRAZO_MEDIO, Compra.MES_ANO_EMISSAO) *

    Sum(Compra.VALOR_TOTAL) / Aggr(NODISTINCT Sum(Compra.VALOR_TOTAL), Compra.MES_ANO_EMISSAO) / Count(Compra.PRAZO_MEDIO), Compra.PRAZO_MEDIO, Compra.MES_ANO_EMISSAO))

Tive que calcular o Prazo Médio em vez de utilizar o valor da Dimensão:

Aggr(DISTINCT Sum(Compra.PRAZO_MEDIO) / Count(Compra.PRAZO_MEDIO), Compra.PRAZO_MEDIO, Compra.MES_ANO_EMISSAO)


E recalcular a Métrica do Peso em vez de utilizar o valor da Coluna [Peso]:

Sum(Compra.VALOR_TOTAL) / Aggr(NODISTINCT Sum(Compra.VALOR_TOTAL), Compra.MES_ANO_EMISSAO) / Count(Compra.PRAZO_MEDIO)

Prazo Acumulado Resolvido.PNG

View solution in original post

5 Replies
Clever_Anjos
Employee
Employee

Quais são suas dimensões?

Clever_Anjos
Employee
Employee

Se possível poste uma amostra da sua aplicação com os dados embaralhados Preparing examples for Upload - Reduction and Data Scrambling

Not applicable
Author

Clever,

Dimensões:

Mês/Ano Emissão: Compra.MES_ANO_EMISSAO

Prazo Médio: Compra.PRAZO_MEDIO

Not applicable
Author

Clever,

Disponibilizei um modelo da aplicação para facilitar o entendimento ok?

Obrigado!

Not applicable
Author

Pessoal,

Resolvido!

Ficou da seguinte forma:

Prazo Ponderado = Sum(Aggr(NODISTINCT Aggr(DISTINCT Sum(Compra.PRAZO_MEDIO) / Count(Compra.PRAZO_MEDIO), Compra.PRAZO_MEDIO, Compra.MES_ANO_EMISSAO) *

    Sum(Compra.VALOR_TOTAL) / Aggr(NODISTINCT Sum(Compra.VALOR_TOTAL), Compra.MES_ANO_EMISSAO) / Count(Compra.PRAZO_MEDIO), Compra.PRAZO_MEDIO, Compra.MES_ANO_EMISSAO))

Tive que calcular o Prazo Médio em vez de utilizar o valor da Dimensão:

Aggr(DISTINCT Sum(Compra.PRAZO_MEDIO) / Count(Compra.PRAZO_MEDIO), Compra.PRAZO_MEDIO, Compra.MES_ANO_EMISSAO)


E recalcular a Métrica do Peso em vez de utilizar o valor da Coluna [Peso]:

Sum(Compra.VALOR_TOTAL) / Aggr(NODISTINCT Sum(Compra.VALOR_TOTAL), Compra.MES_ANO_EMISSAO) / Count(Compra.PRAZO_MEDIO)

Prazo Acumulado Resolvido.PNG