Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik and ServiceNow Partner to Bring Trusted Enterprise Context into AI-Powered Workflows. Learn More!
cancel
Showing results for 
Search instead for 
Did you mean: 
msludo
Contributor III
Contributor III

Como iterar em uma tabela?

Boa tarde,

 

Sou nova no Qlik e estou com uma planilha em excel de dados orçamentários de receita e anulação de receita e precisava obter como resultado a lista de receitas com o valor da anulação sendo abatido do valor da receita, se for o caso. Ex.:

Evento Contabil (Nome)(numero Documento)Valor Documento
RECEITA aaaa.bbbb.ccc.ddddd.eee1200,00
ANULAÇÃO DA RECEITA aaaa.bbbb.ccc.ddddd.eee.011200,00

 

Essas duas linhas deveriam resultar em :

Evento Contabil (Nome)Movimento Contabil (Documento)Valor Documento
RECEITA aaaa.bbbb.ccc.ddddd.eee0

 

Essas duas linhas estão relacionadas pelo número documento, sendo que a anulação tem o final .01 para diferenciar da receita.

Alguém tem ideia de como eu posso fazer isso?

 

 

 

 

2 Replies
erick_ws
Contributor II
Contributor II

Olá,
Pensando rápido aqui, você poderia utilizar algo como carregar uma tabela temporária, com os dados da anulação negativa, e depois consolidar os dados pelo número do documento.

TEMP:
LOAD //Primeiro o load apenas da receita (onde o campo numero não termine com .01
[numero Documento],
[Valor Documento]
FROM tabela.xls
WHERE
Wildmatch([numero Documentp],'*.01') = 0;

JOIN (TEMP)
LOAD //Depois o load apenas da anulação com o valor negativo
PurgeChar([numero Documento],'.01') AS [numero Documento], //retiramos o .01 do final do campo, assim ele se "juntará" ao documento acima por join
[Valor Documento]*-1 AS [Valor Documento] //valor negativo da anulação
FROM tabela.xls
WHERE
Wildmatch([numero Documento],'*.01') > 0; //apenas registros com .01 no final

RECEITAS:
LOAD
[numero Documento],
Sum([Valor Documento]) as [Valor Documento]
RESIDENT Temp
Group by [numero Documento];

Drop table TEMP;
marco_almeida
Creator II
Creator II

Eai tudo certo?

Bom.. Se o valor do seu registro de anulação vier positivo, basta multiplicá-lo por -1. Ai a soma da tabela trará o resultado se você remover o campo "Evento Contabil (Nome) " da visualização. Caso contrário será mostrado os dois valores.

Agora para tratar o final do "Movimento Contabil (Documento) ", se ele sempre vier com 2 dígitos igual ao seu exemplo, basta removê-lo da seguinte maneira:

Mid(Movimento Contabil (Documento), 1, Len(Movimento Contabil (Documento)) -3)

Grupo Telegram Qlik Brasil: https://t.me/joinchat/AeRmnUmcxQ02L00g3x-HtQ