Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
rogerioqv
Contributor II

Set Analysis com agregação

Amigos,

Estou com uma dúvida. Vou tentar explicar. Estou elaborando um DRE específico de um cliente. Para esta DRE, criei um agrupamento de contas chamado GRUPOCONTACONTABIL. As contas dentro deste grupo são utilizadas no mapeamento do DRE.

O que acontece é que cada conta destas, em cada mês do ano, deve ser multiplicada por um valor % redutor ou não, pois, entendemos isto como centro de custo não declarado. Este percentual está em uma planilha, onde a chave primária é CODCONTACONTABIL + MES, haja visto que só há um % por conta para cada mês.

Esta tabela carregada se relaciona com a tabela do razão contabil pela chave também CODCONTACONTABIL + MES. Até aí está tudo bem. O problema é quando preciso calcular os valores acumulados.

Tenho um gráfico de tabelas no qual as dimensões são colocadas por Valuelist, ou seja, não são dimensões carregadas, mas que utilizam cálculos de tabelas carregadas.

O cálculo que quero é multiplicar o saldo contabil (saldoanterior + (débitos - créditos)) pelo % correspondente do mês em questão da conta contábil que faz parte do grupo. Abaixo uma amostra:

if(

   ValueList('VENDAS','GTOS. PROPORC. VENDAS','VENDA LÍQUIDA','Diferença Inventário (a P.V.N.)', 'PRODUÇÃO A P.V.N.','CUSTOS PROPORC. FABRICAÇÃO',

   '  Materias primas e auxiliares', 'MOD', '  - Propria','  - Terceiros','Varios', 'MARGEM BRUTA', 'Estruturais','M.O.I','Amortização', 'Varios ',

   'Outros Gastos Financeiros', 'RESULTADO TEORICO S/ PRODUCAO','Dotação de fundos', 'RESULTADO DE EXPLOTACION','Resultados alejos a la explotacion',

   'EXCEDENTE BRUTO', 'Impostos sobre a sociedade', 'EXCEDENTE LIQUIDO') = 'Varios',

   (SUM({<CODGRUPOCONTACONTABIL = {73003}, MES = {jan}>}SALDOANTERIOR*CONTAVARIOS.PERCENT) +

   (SUM({<CODGRUPOCONTACONTABIL = {73003}, MES = {jan,fev,mar,abr}>}DEBITOS*CONTAVARIOS.PERCENT) -

    SUM({<CODGRUPOCONTACONTABIL = {73003}, MES = {jan,fev,mar,abr}>}CREDITOS*CONTAVARIOS.PERCENT)))

)

Sei que preciso tirar o CONTAVARIOS.PERCENT porque no acumulado não preciso multiplicar a conta pelo % de cada mês acumulado, mas somente para o % do mês de abril. Creio que devo utilizar um AGGR porém não consegui ainda identificar onde.

Caso alguém tenha passado por isto e possa ajudar eu agradeceria. Anexo uma amostra do modelo de dados.

Abraços.

Tags (1)
10 Replies
johnatanbmo
New Contributor II

Re: Set Analysis com agregação

Ja tentou transformar tudo em um tabelão?

MVP
MVP

Re: Set Analysis com agregação

Bom dia.

Concordo com o johnatanbmo‌ em criar em uma tabela. Na realidade eu resolveria (tentaria) as questões de saldo, % e outros no script e simplificaria a expressão.

Segue post com exemplo de como pegar o saldo anterior respondido neste post pelo fernando.tonial

Carregar saldo anterior no script

rogerioqv
Contributor II

Re: Set Analysis com agregação

Alessandro,

Obrigado pela dica... entretanto, nesta base de dados não existe o saldo anterior mês a mês, somente o saldo do inicio do ano... assim, sempre que preciso calcular alguma coisa, eu tenho que pegar os dados desde o inicio do ano vir calculando. Até aí tudo bem, poderia fazer isto via script, me economizaria bastante linha de código nos objetos, porém, minha dúvida é em como fazer com que o cálculo apresentado funcione, haja visto que eu tenho que calcular o saldo atual e multiplicar por um %. Este percentual, ao colocar na sum() que calcula o mês multiplica o saldo de cada mês pelo % de cada mês e na verdade eu quero multiplicar apenas no final, depois de criar o saldo e daí sim aplicar o %. Acontece que em um objeto com dimensões calculadas isto não está funcionando, pois ele não obedece a dimensão.

ex; sum({<mes = {jan}>}saldoanterior) + (sum({<mes = {jan,fev,mar,abr}>}debitos) - sum({<mes = {jan,fev,mar,abr}>}creditos)) * %    ->  aqui está o problema!!!!!!!!!

Abraços.

MVP
MVP

Re: Set Analysis com agregação

Bom dia.  Dependendo do calculo, um aggr pode ajudar.   Nao tem como liberar um modelo reduzido para ajudar?

rogerioqv
Contributor II

Re: Set Analysis com agregação

Alessandro, complementando:

sum({<mes = {jan}>}saldoanterior) + (sum({<mes = {jan,fev,mar,abr}>}debitos) - sum({<mes = {jan,fev,mar,abr}>}creditos)) * %   


este SA calculada o saldo do mês de abril. Desta forma, ele deveria multiplicar o % apenas do mês de abril. Como são várias contas que estão linkadas na dimensão, se eu colocar o % dentro de cada SUM a aplicação multiplica pelo % de cada mês, que é diferente do mês de abril. Assim, preciso de uma função que me faça o cálculo do saldo do mês de abril e depois aplique o % específico de cada conta para apenas o do mês de abril.


Tentei com o AGGR, fieldsortedvalue e dentre outros, mas em todos a dimensão foi ignorada.


Vou ficar tentando por aqui, se achar a resposta eu posto aqui também!

MVP
MVP

Re: Set Analysis com agregação

Rogerio, se tiver um .qvw eu posso ir vendo o resultado da expressao e se for o caso ir arrumando ela.....sem base, nao sei se a expressao abaixo daria certo ou nao.....mas o distinct no sum dos % creio que tenha que ter.....

sum(

       aggr(

                sum({<mes = {jan}>}saldoanterior) + (sum({<mes = {jan,fev,mar,abr}>}debitos) - sum({<mes = {jan,fev,mar,abr}>}creditos)) *      sum(distinct %mes)   

        , mes)

)

rogerioqv
Contributor II

Re: Set Analysis com agregação

Alessandro, minha conta é inversa ao que você postou... eu preciso multiplicar pelo % apenas do mês de abril para cada uma das contas. No seu post, creio que ele multiplicaria pelo % de cada mês de cada conta... por isto acho que o aggr deveria estar apenas na ultima expressão... eu já tentei assim:

sum({<mes = {jan}>}saldoanterior) + (sum({<mes = {jan,fev,mar,abr}>}debitos) - sum({<mes = {jan,fev,mar,abr}>}creditos))  * aggr(sum({<mes = {abr}>}percentual),conta)


mas não deu... seu eu tirar o aggr, funciona somente se a conta estiver selecionada.


Vou tentar gerar alguns dados, porém, as informações são sigilosas, pois contém o resultado total do período...

MVP
MVP

Re: Set Analysis com agregação

embaralha os nomes e descritivos......

rogerioqv
Contributor II

Re: Set Analysis com agregação

Alessandro,

Criei o qvw em anexo para ver se te ajuda a me ajudar... :-))

A planilha contém a tabela com dados de débito e crédito e também os % a serem multiplicados.

Coloquei também um objeto com o cálculo. Preciso fazer com que o debito - credito multiplique apenas o % relacionado ao mês de abril de cada conta.

Abraços.