Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa tarde, amigos.
Sou iniciante no QlikView. Se possível, agradeço a ajuda de vocês no seguinte problema:
Tenho uma tabela simples (img-01.png). Na coluna SINISTRALIDADE eu estou obtendo o resultado em porcentagem da divisão
das colunas (Custo Assistencial / Receita). Porém, no total geral de SINISTRALIDADE a tabela traz o resultado entre o somatório de custo assistencial / receita. Eu gostaria de obter a média entre a soma dos valores da coluna (de acordo com o período, que nesse caso está de 201502 a 201601), Seria a soma das porcentagens da coluna sinistralidade dividido por 12.
Eu consegui colocar essa média marcando a opção "Média de Linhas", na aba de expressão (img-02.png). Porém, esse resultado eu precisaria também para utilizar em um objeto de texto, porém só consegui trazer a média entre a divisão das colunas (custo assistencial / receita).
Tentei utilizar as fórmulas AVG com Agregação por Período, porém, aparece um traço, não atribuindo valor a coluna.
Desde já, agradeço.
Para o objeto de texto vc pode usar
NUM( (SUM(Custo Assistencial)/SUM(Receita))/12,'#.##0,00%')
Não esqueça de usar os set analys nos sum de custo e receita para trazer apenas os ultimos 12 meses
Muito obrigado pela ajuda, Rodrigo.
Eu tentei dessa forma mas não encontrei o valor correto. A fórmula que utilizei foi a seguinte:
= NUM( (SUM({<COD_BENEFICIARIO_BEN = {'*'} - {'0'}>} IF (PERIODO_PK >= '201503' AND PERIODO_PK <= '201602', VAL_CUSTO_S_PRORATA_FCB)) /
SUM({<COD_BENEFICIARIO_BEN = {'*'} - {'0'}>} IF (PERIODO_PK >= '201503' AND PERIODO_PK <= '201602', VAL_REC_RECEB_POR_COMPETENCIA_FCB))) / 12,'#.##0,00%')
O primeiro SUM representa o custo assistencial, em que pego a informação da coluna de uma tabela VAL_CUSTO_S_PRORATA_FCB do banco. A outro SUM representa a Receita, que é a coluna de uma tabela VAL_REC_RECEB_POR_COMPETENCIA_FCB, do banco.
O valor que saiu no objeto de texto foi de 6,89 %, quando na verdade deveria sair 82,94%.
O sentido é esse, mas não consigo detectar o porque que não está funcionando.
Quando vc faz os valores separados as informações batem?
Faça as formulas separadas para ver se os valores batem. Caso os mesmos estejam diferentes é alguma outra coisa (filtro, seleção, dimensão, duplicidade, conceito)
SUM({<COD_BENEFICIARIO_BEN = {'*'} - {'0'}, PERIODO_PK ={">=201503<=201602"}>} VAL_CUSTO_S_PRORATA_FCB)
SUM({<COD_BENEFICIARIO_BEN = {'*'} - {'0'}, PERIODO_PK ={">=201503<=201602"}>} VAL_REC_RECEB_POR_COMPETENCIA_FCB)
caso os valores estejam ok, junte as formulas
((SUM({<COD_BENEFICIARIO_BEN = {'*'} - {'0'}, PERIODO_PK ={">=201503<=201602"}>} VAL_CUSTO_S_PRORATA_FCB))/
(SUM({<COD_BENEFICIARIO_BEN = {'*'} - {'0'}, PERIODO_PK ={">=201503<=201602"}>} VAL_REC_RECEB_POR_COMPETENCIA_FCB)))/12
verifique se o valor da conta da ok,(lembre-se não estará em %) se estiver ok formate a formula com o NUM
Ola Dharion,
Eu acredito que voce consiga resolver esse problema utilizando a funcao de agregacao avancada AGGR() para agregar as porcentagens por periodo:
num(avg({$<COD_BENEFICIARIO_BEN-={0}>} aggr(sum({$<COD_BENEFICIARIO_BEN-={0}>} VAL_CUSTO_S_PRORATA_FCB)/sum({$<COD_BENEFICIARIO_BEN-={0}>} VAL_REC_RECEB_POR_COMPETENCIA_FCB), PERIODO_PK)),'#.##0,00%')
Nao coloquei o filtro de periodo na expressao acima porque como esta agregando por periodo nao precisa fixar 12 meses mas caso vc queira fixar mesmo assim, e so adicionar o modificar de conjunto PERIODO_PK ={">=201503<=201602"}
Abracos,
Cesar
A formula acima deve servir tanto para o objeto de texto quanto para a tabela, basta remover a formatacao do num() e pode desmarcar a opcao media de linhas.