Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Tenho uma tabela dinâmica, com três dimensões (pais, estado, cidade) e três expressões (vendas, entregas, pendentes).
A expressão "pendentes" é uma fórmula: if(entregas > vendas, 0, Ceil((vendas - entregas),1))
Por hipóteses, três linhas;
na primeira, pendente=10;
na segunda, pendente=0 (entregas é maior que vendas, sem a fórmula, o resultado seria -5);
na terceira, pendente = 20.
A exibição de subtotais está ativada; a soma deveria ser 30 (10 + 0 + 20). Mas apura 25 (10 - 5 + 20). Porque?
Tentei algumas combinações tentando usar AGGR na fórmula, mas sem sucesso.
Grato desde já.
LC
Solução, dada pelo nosso colega Sunny Talwar, da comunidade internacional:
Sum(Aggr(
RangeMax(
RangeSum(
Count({<num_item_egestao = {2137,92137,2138,92138,2139,92139}>} processo_egestao),
Count({<num_item_egestao = {2142,92142}>} processo_egestao),
-Count({<num_item_egestao = {2152,92152}>} processo_egestao),
-Count({<num_item_egestao = {2192,92192}>} processo_egestao),
-Count({<num_item_egestao = {2195,92195}>} processo_egestao)
),
0)
, orgao, juiz, gabinete))
Luiz,
Teste seu if desse jeito e verifique se o resultado se altera conforme desejado:
if(entregas > vendas, 0, 1)
A função Ceil arredonda o valor de entrada para o múltiplo mais próximo definido no step. No seu caso suponho algo desse tipo:
Vendas = 5
Entregas=10
Ceil(5-10,1) = -5, já que o múltiplo de 1 mais próximo é o próprio -5
Neste caso o somatoria vai ficar errado mesmo, por que ele tenta aplicar a mesma lógica do IF para cada subtotal.
A solução neste caso é usar AGGR neste formato:
sum(aggr(if(sum(entregas) > sum(vendas), 0, Ceil((sum(vendas) - sum(entregas)),1)),pais,estado,cidade))
Era assim que você tinha utilizado o AGGR ?
Luiz;
Já tentou incluir a fórmula das métricas em tempo de script?
A aplicação teria expressões mais simples e métricas já processados.
Mas tem que ver a questão da dinâmica dos filtros se atenderia...
Atualizando esta questão, pois ainda estou com o problema...
Tenho uma tabela dinâmica, com três dimensões (orgao, juiz, gabinete) e oito expressões (Distribuídos, Redistribuídos, Restituídos, Dist Líquida, Em Sessão, Monocrática, Solucionados, Taxa Julg e Faltam).
Distribuídos é "=Count({<num_item_egestao={2137,92137,2138,92138,2139,92139}>} processo_egestao)"
Redistribuídos é "=Count({<num_item_egestao={2142,92142}>} processo_egestao)"
Restituídos é "=Count({<num_item_egestao={2152,92152}>} processo_egestao)"
Dist Líquida é "Distribuídos + Redistribuídos - Restituídos"
Em Sessão é "=Count({<num_item_egestao={2192,92192}>} processo_egestao)"
Monocrática é "=Count({<num_item_egestao={2195,92195}>} processo_egestao)"
Solucionados é " "Em Sessão" + Monocrática"
Taxa Julg é "if("Dist Líquida" > 0, (Solucionados / "Dist Líquida"),0)"
Faltam é "if("Dist Líquida" > Solucionados, "Dist Líquida" - Solucionados, 0)"
Meu problema é na coluna Faltam. Na verdade, na soma dela.
Por hipótese,
linha 1: Dist Líquida = 2, Solucionados = 0, Faltam = 2
linha 2: Dist Líquida = 134, Solucionados = 88, Faltam = 46
linha 3: Dist Líquida = 0, Solucionados = 1, Faltam = 0 (Solucionado > Dist Líquida, resultado 0.)
A marcação "Mostrar Subtotais" está marcada para as três dimensões.
Deveria dar 48 (2 + 46 +0), mas a linha Total dá 47!
Ele não está somando a coluna Faltam. Ele está recalculando!
Dist Líquida = 136 (2+134+0), Solucionados 89 (0+88+1). 47!
Mas eu preciso que some a coluna Faltam (e não recalcule a linha), pois há uma fórmula nela - quando negativo, 0 é atribuído como resultado.
Como resolver?
Grato por qualquer ajuda ou esclarecimento.
LC
Solução, dada pelo nosso colega Sunny Talwar, da comunidade internacional:
Sum(Aggr(
RangeMax(
RangeSum(
Count({<num_item_egestao = {2137,92137,2138,92138,2139,92139}>} processo_egestao),
Count({<num_item_egestao = {2142,92142}>} processo_egestao),
-Count({<num_item_egestao = {2152,92152}>} processo_egestao),
-Count({<num_item_egestao = {2192,92192}>} processo_egestao),
-Count({<num_item_egestao = {2195,92195}>} processo_egestao)
),
0)
, orgao, juiz, gabinete))
Boa Luiz! Muito obrigado por compartilhar a solução.
Abs e Sucesso!!