Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Pessoal,
Preciso de ajuda para calcular o total de uma tabela dinâmica.
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
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)
Quais são suas dimensões?
Se possível poste uma amostra da sua aplicação com os dados embaralhados Preparing examples for Upload - Reduction and Data Scrambling
Clever,
Dimensões:
Mês/Ano Emissão: Compra.MES_ANO_EMISSAO
Prazo Médio: Compra.PRAZO_MEDIO
Clever,
Disponibilizei um modelo da aplicação para facilitar o entendimento ok?
Obrigado!
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)