Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Olá, tenho uma tabela dinâmica estilo DRE (Plano de Contas Contábil) onde as contas tem numerações progressivas (1, 1.1, 1.1.1) , quero indentar de acordo com a numeração, alguém tem uma solução? Talvez uma extensão?
No exemplo anexo é um Power BI onde preciso aproximar o máximo do layout.
Referência: https://app.powerbi.com/view?r=eyJrIjoiNTcxYTQwNDEtOWM3Ny00YmI2LWE4NTktODJhYzZhN2NlYjMyIiwidCI6IjlkY...
I think you need to create a Hierarchy table in your model.
Bom dia/tarde @Paulo_Henrique_89 .
Primeiramente, lhe convido a entrar na comunidade (grupo) do Brasil, será bem vindo lá.
https://community.qlik.com/t5/Qlik-Brasil/gh-p/brasil-group
Segundo: qual é o formato que o seu campo está? e quais são as separações possíveis?
- Vou considerar que você tem o seu campo [Conta Contábil] e dentro dele é mais ou menos assim:
3111
Sendo que:
(primeiro dígito)3 - Receita;
(segundo digito)1- Classificação 1;
(terceiro digito) 1- Classificação 2;
(quarto digito) 1- Classificação 3;
Está correto?
Tem caracteres separadores do seu campo original? Tipo assim:
3.1.1.1 ?
Aguardo seu retorno.
Faça isso no seu script de carga (faça as adaptações necessárias ao seu modelo por favor)
Boa tarde @TiagoCardoso, entrei na comunidade.
Realizei a carga com os campos CONTA, DESCRICAO e SALDO, meu campo conta está da forma que descreveu mesmo, estou indo somente até o 4º nível. Não utilizei separadores mas posso colocar sem problemas.
O campo [Conta Contábil] é apenas a concatenação da CONTA&' - '&DESCRICAO
@albertovarela I'll check .
Me fala o nome do seu campo e também como ele é originalmente.
Me fala também o nome de cada nível que você precisa.
Vou elaborar um modelo para você poder aproveitar ao máximo, de uma forma que você vai conseguir colocar na sua aplicação.
Se quiser, melhor ainda, formula um LOAD * INLINE [] e coloca aqui pra mim.
Tenho umas idéias com o uso do SubField() para quebrar suas strings e separar seus campos a fim de criar os subníveis.
o saldo coloquei fictício ok, segue:
LOAD * INLINE [
CONTA, DESCRICAO, SALDO
3, RECEITAS, 100
31, RECEITAS COM OPER.DE ASSISTÊNCIA A SAÚD, 100
311, CONTRAPRESTAÇÕES LÍQUIDAS/PRÊMIOS RETIDO, 100
3111, CONTRAPR.EMITIDAS/PRÊMIOS ASSIST SAÚDE, 100
3117, (-) CONTR.DE CORRESP.CEDIDA DE ASS.A SAÚ, 100
3119, (-)OUTRAS DEDUÇÕES DAS CONTRAPRESTAÇÕES, 100
32, (-)TRIBUTOS DIRET.DE OP.DE ASSIS.À SAÚDE, 100
321, (-)TRIB.DIR.DE OP.C/PLAN.DE ASS.A SAÚDE, 100
3211, (-)TRIB.DIR.DE OP.C/PLAN.DE ASS.A SAÚDE, 100
33, OUTRAS RECEITAS OPERACIONAIS, 100
331, OUTRAS RECEITAS OPERAC. PL ASSIS.À SAÚDE, 100
3311, OUTRAS RECEITAS OPERAC. PL ASSIS.À SAÚDE, 100
332, REC.ASSIST.À SAÚDE N.RELAC.C/PLANOS OP, 100
3321, REC.ASSIST.À SAÚDE N.RELAC.C/PLANOS OP, 100
34, (-)TRIBUTOS DIR.OUTRAS ATIV.DE ASSIS.SAÚ, 100
341, (-)TRIBUTOS DIR.OUTRAS ATIV.DE ASSIS.SAÚ, 100
3411, (-)TRIBUTOS DIR.OUTRAS ATIV.DE ASSIS.SAÚ, 100
35, RECEITAS FINANCEIRAS, 100
351, RECEITAS DE APLICAÇÕES FINANCEIRAS, 100
3511, RECEITAS COM TÍTULOS DE RENDA FIXA PRIVA, 100
352, RECEITAS FINANC.C/OP.DE ASSIST.À SAÚDE, 100
3521, RECEITAS POR RECEBIMENTOS EM ATRASO, 100
358, OUTRAS RECEITAS FINANCEIRAS, 100
3584, RECEITAS DE JUROS S/ CAPITAL PRÓPRIO, 100
3589, RECEITAS FINANCEIRAS DIVERSAS, 100
36, RECEITAS PATRIMONIAIS, 100
361, RECEITAS PATRIMONIAIS, 100
3613, LUCRO NA ALIEN. DE BENS DO ATIVO N CIRCU, 100
3619, OUTROS INVESTIMENTOS, 100
4, DESPESAS, 100
41, EVENTOS INDENIZÁVEIS LÍQUIDOS RETIDOS, 100
411, EVENTOS CONHECIDOS/AVIS.DE ASSIST.SAÚD, 100
4111, EVE CONH.OU AVIS.NA MOD.DE PAG.POR PROC., 100
4114, EVEN.CONH.OU AVIS.NA MOD.DE PAG.P/PACOTE, 100
4115, EVEN.CONH.AVIS.POR RATEIO CUSTOS REC.PRO, 100
4117, EVENTOS CONH. OU AVISADOS - REEMBOLSO, 100
4118, EVENTOS CONHECIDOS OU AVISADOS NO SUS, 100
414, VARIAÇÃO DA PROV DE EV OCORR E NÃO AVISA, 100
4141, VARIAÇÃO DA PROV DE EV OCORR E NÃO AVISA, 100
43, DESPESAS DE COMERCIALIZAÇÃO, 100
431, COMISSÃO E AGENC./S OPER.DE ASSI.À SAÚDE, 100
4311, CONTRAPRESTAÇÕES PECUNIÁRIAS, 100
44, OUTRAS DESPESAS OPERACIONAIS, 100
441, OUTRAS DESP.OP.C/PLANO DE ASS.À SAÚDE, 100
4413, OUTRAS DESP.OP.C/PLANO DE ASS.À SAÚDE, 100
4419, PROVISÃO PARA PERDAS SOBRE CRÉDITOS, 100
442, OUTRAS DESP.OP.DE ASS.À SAÚDE NÃO RELAC., 100
4421, DESPESAS C/OPERAÇÕES DE ASSIST.A SAÚDE, 100
4422, DESPESAS C/OPER.DE INTERCÂMBIO EVENTUAL, 100
4429, OUTRAS DESPESAS OPERACIONAIS, 100
45, DESPESAS FINANCEIRAS, 100
452, DESPESAS FINANC.C/OPER.DE ASSIST.À SAÚDE, 100
4521, DESPESAS FINANC.C/OPER.DE ASSIST.À SAÚDE, 100
453, DESPESA COM EMPRÉSTIMOS E FINANCIAMENTOS, 100
4532, DESPESA FINANCEIRA COM FINANCIAMENTOS, 100
458, OUTRAS DESPESAS FINANCEIRAS, 100
4581, DESPESAS FINANC.DE ENCARGOS SOBRE TRIBUT, 100
4583, DESPESAS POR PAGAMENTOS EM ATRASO, 100
4584, DESPESAS C/IMPOSTOS E CONTR.S/TRANS.FIN, 100
4589, DESPESAS FINANCEIRAS DIVERSAS, 100
46, DESPESAS ADMINISTRATIVAS, 100
461, DESPESAS COM PESSOAL PRÓPRIO, 100
4611, DESPESAS COM ADMINISTRAÇÃO, 100
4612, DESPESAS COM EMPREGADOS, 100
4613, DESPESAS COM INDENIZAÇÕES, 100
4614, DESPESAS COM ENCARGOS SOCIAIS, 100
4615, DESPESAS COM ASSISTÊNCIA SOCIAL, 100
4616, DESPESAS COM INSTRUÇÃO, 100
4617, DESPESAS C/PROGRAMA ALIMENT.AO TRABALHAD, 100
4618, DESPESAS COM TRANSPORTE DE EMPREGADOS, 100
4619, OUTRAS DESPESAS COM PESSOAL PRÓPRIO, 100
462, DESPESAS COM SERVIÇOS DE TERCEIROS, 100
4621, REMUNERAÇÃO POR SERVIÇOS DE TERCEIROS, 100
4622, ENCARGOS SOCIAIS COM SERVIÇOS DE TERCEIR, 100
463, DESPESAS COM LOCALIZAÇÃO E FUNCIONAMENTO, 100
4631, DESPESAS COM LOCALIZAÇÃO E MANUTENÇÃO, 100
4633, DESPESAS C/UTILIZ.DE EQUIPAM. E VEÍCULOS, 100
4637, DEPRECIAÇÕES DE BENS DE USO PRÓPRIO, 100
4639, OUTRAS DESPESAS C/LOCALIZ.E FUNCIONAMENT, 100
464, DESPESAS C/PUBLICIDADE E PROPAGANDA INST, 100
4641, PUBLICIDADE E PROPAGANDA, 100
465, DESPESAS COM TRIBUTOS, 100
4651, IMPOSTOS, 100
4653, TAXA DE SAÚDE SUPLEMENTAR, 100
466, DESPESAS COM MULTAS ADMINISTRATIVAS, 100
4661, MULTAS ADMINISTRATIVAS, 100
468, DESPESAS ADMINISTRATIVAS DIVERSAS, 100
4681, DESPESAS ADMINISTRATIVAS DIVERSAS, 100
47, DESPESAS PATRIMONIAIS, 100
471, DESPESAS PATRIMONIAIS, 100
4713, PREJUÍZO NA ALIEN.OU BAIXA DE BENS N.CIR, 100
6, CONTAS DE DESTINAÇÃO/APURAÇÃO DE RESULTA, 100
61, IMPOSTOS E PARTICIPAÇÕES SOBRE O LUCRO, 100
611, IMPOSTOS E CONTRIBUIÇÕES, 100
6111, IMPOSTO DE RENDA, 100
6112, CONTRIBUIÇÃO SOCIAL, 100
];
O nível é somente até o 4º mesmo, exemplo 6 à 6111, 6112, vou apresentar o primeiro nível e vou maximizando conforme necessidade, essa a intensão.
Segue a LOAD * INLINE [], é exatamente dessa forma que esta minha carga:
LOAD * INLINE [
CONTA, DESCRICAO, SALDO
3, RECEITAS, 100
31, RECEITAS COM OPER.DE ASSISTÊNCIA A SAÚD, 100
311, CONTRAPRESTAÇÕES LÍQUIDAS/PRÊMIOS RETIDO, 100
3111, CONTRAPR.EMITIDAS/PRÊMIOS ASSIST SAÚDE, 100
3117, (-) CONTR.DE CORRESP.CEDIDA DE ASS.A SAÚ, 100
3119, (-)OUTRAS DEDUÇÕES DAS CONTRAPRESTAÇÕES, 100
32, (-)TRIBUTOS DIRET.DE OP.DE ASSIS.À SAÚDE, 100
321, (-)TRIB.DIR.DE OP.C/PLAN.DE ASS.A SAÚDE, 100
3211, (-)TRIB.DIR.DE OP.C/PLAN.DE ASS.A SAÚDE, 100
33, OUTRAS RECEITAS OPERACIONAIS, 100
331, OUTRAS RECEITAS OPERAC. PL ASSIS.À SAÚDE, 100
3311, OUTRAS RECEITAS OPERAC. PL ASSIS.À SAÚDE, 100
332, REC.ASSIST.À SAÚDE N.RELAC.C/PLANOS OP, 100
3321, REC.ASSIST.À SAÚDE N.RELAC.C/PLANOS OP, 100
34, (-)TRIBUTOS DIR.OUTRAS ATIV.DE ASSIS.SAÚ, 100
341, (-)TRIBUTOS DIR.OUTRAS ATIV.DE ASSIS.SAÚ, 100
3411, (-)TRIBUTOS DIR.OUTRAS ATIV.DE ASSIS.SAÚ, 100
35, RECEITAS FINANCEIRAS, 100
351, RECEITAS DE APLICAÇÕES FINANCEIRAS, 100
3511, RECEITAS COM TÍTULOS DE RENDA FIXA PRIVA, 100
352, RECEITAS FINANC.C/OP.DE ASSIST.À SAÚDE, 100
3521, RECEITAS POR RECEBIMENTOS EM ATRASO, 100
358, OUTRAS RECEITAS FINANCEIRAS, 100
3584, RECEITAS DE JUROS S/ CAPITAL PRÓPRIO, 100
3589, RECEITAS FINANCEIRAS DIVERSAS, 100
36, RECEITAS PATRIMONIAIS, 100
361, RECEITAS PATRIMONIAIS, 100
3613, LUCRO NA ALIEN. DE BENS DO ATIVO N CIRCU, 100
3619, OUTROS INVESTIMENTOS, 100
4, DESPESAS, 100
41, EVENTOS INDENIZÁVEIS LÍQUIDOS RETIDOS, 100
411, EVENTOS CONHECIDOS/AVIS.DE ASSIST.SAÚD, 100
4111, EVE CONH.OU AVIS.NA MOD.DE PAG.POR PROC., 100
4114, EVEN.CONH.OU AVIS.NA MOD.DE PAG.P/PACOTE, 100
4115, EVEN.CONH.AVIS.POR RATEIO CUSTOS REC.PRO, 100
4117, EVENTOS CONH. OU AVISADOS - REEMBOLSO, 100
4118, EVENTOS CONHECIDOS OU AVISADOS NO SUS, 100
414, VARIAÇÃO DA PROV DE EV OCORR E NÃO AVISA, 100
4141, VARIAÇÃO DA PROV DE EV OCORR E NÃO AVISA, 100
43, DESPESAS DE COMERCIALIZAÇÃO, 100
431, COMISSÃO E AGENC./S OPER.DE ASSI.À SAÚDE, 100
4311, CONTRAPRESTAÇÕES PECUNIÁRIAS, 100
44, OUTRAS DESPESAS OPERACIONAIS, 100
441, OUTRAS DESP.OP.C/PLANO DE ASS.À SAÚDE, 100
4413, OUTRAS DESP.OP.C/PLANO DE ASS.À SAÚDE, 100
4419, PROVISÃO PARA PERDAS SOBRE CRÉDITOS, 100
442, OUTRAS DESP.OP.DE ASS.À SAÚDE NÃO RELAC., 100
4421, DESPESAS C/OPERAÇÕES DE ASSIST.A SAÚDE, 100
4422, DESPESAS C/OPER.DE INTERCÂMBIO EVENTUAL, 100
4429, OUTRAS DESPESAS OPERACIONAIS, 100
45, DESPESAS FINANCEIRAS, 100
452, DESPESAS FINANC.C/OPER.DE ASSIST.À SAÚDE, 100
4521, DESPESAS FINANC.C/OPER.DE ASSIST.À SAÚDE, 100
453, DESPESA COM EMPRÉSTIMOS E FINANCIAMENTOS, 100
4532, DESPESA FINANCEIRA COM FINANCIAMENTOS, 100
458, OUTRAS DESPESAS FINANCEIRAS, 100
4581, DESPESAS FINANC.DE ENCARGOS SOBRE TRIBUT, 100
4583, DESPESAS POR PAGAMENTOS EM ATRASO, 100
4584, DESPESAS C/IMPOSTOS E CONTR.S/TRANS.FIN, 100
4589, DESPESAS FINANCEIRAS DIVERSAS, 100
46, DESPESAS ADMINISTRATIVAS, 100
461, DESPESAS COM PESSOAL PRÓPRIO, 100
4611, DESPESAS COM ADMINISTRAÇÃO, 100
4612, DESPESAS COM EMPREGADOS, 100
4613, DESPESAS COM INDENIZAÇÕES, 100
4614, DESPESAS COM ENCARGOS SOCIAIS, 100
4615, DESPESAS COM ASSISTÊNCIA SOCIAL, 100
4616, DESPESAS COM INSTRUÇÃO, 100
4617, DESPESAS C/PROGRAMA ALIMENT.AO TRABALHAD, 100
4618, DESPESAS COM TRANSPORTE DE EMPREGADOS, 100
4619, OUTRAS DESPESAS COM PESSOAL PRÓPRIO, 100
462, DESPESAS COM SERVIÇOS DE TERCEIROS, 100
4621, REMUNERAÇÃO POR SERVIÇOS DE TERCEIROS, 100
4622, ENCARGOS SOCIAIS COM SERVIÇOS DE TERCEIR, 100
463, DESPESAS COM LOCALIZAÇÃO E FUNCIONAMENTO, 100
4631, DESPESAS COM LOCALIZAÇÃO E MANUTENÇÃO, 100
4633, DESPESAS C/UTILIZ.DE EQUIPAM. E VEÍCULOS, 100
4637, DEPRECIAÇÕES DE BENS DE USO PRÓPRIO, 100
4639, OUTRAS DESPESAS C/LOCALIZ.E FUNCIONAMENT, 100
464, DESPESAS C/PUBLICIDADE E PROPAGANDA INST, 100
4641, PUBLICIDADE E PROPAGANDA, 100
465, DESPESAS COM TRIBUTOS, 100
4651, IMPOSTOS, 100
4653, TAXA DE SAÚDE SUPLEMENTAR, 100
466, DESPESAS COM MULTAS ADMINISTRATIVAS, 100
4661, MULTAS ADMINISTRATIVAS, 100
468, DESPESAS ADMINISTRATIVAS DIVERSAS, 100
4681, DESPESAS ADMINISTRATIVAS DIVERSAS, 100
47, DESPESAS PATRIMONIAIS, 100
471, DESPESAS PATRIMONIAIS, 100
4713, PREJUÍZO NA ALIEN.OU BAIXA DE BENS N.CIR, 100
6, CONTAS DE DESTINAÇÃO/APURAÇÃO DE RESULTA, 100
61, IMPOSTOS E PARTICIPAÇÕES SOBRE O LUCRO, 100
611, IMPOSTOS E CONTRIBUIÇÕES, 100
6111, IMPOSTO DE RENDA, 100
6112, CONTRIBUIÇÃO SOCIAL, 100
];
A intensão e minimizar até o primeiro nível (exemplo: 3, 4 e 6) e ir maximizando até o ultimo (exemplo: 3619, 4713 e 6112).
Segue a LOAD * INLINE [], é exatamente dessa forma que esta minha carga e a intensão e minimizar até o primeiro nível (exemplo: 3, 4 e 6) e ir maximizando até o ultimo (exemplo: 3619, 4713 e 6112).
Paulo, não consegui formular nada que vá lhe ajudar muito.
Aconselho você a ler realmente sobre a hierarquia.
Consegui fazer isso aqui abaixo, mas creio que pode te atrapalhar na questão de trabalhar com valores posteriormente.
tab1:
LOAD
TEXT(Conta) AS Conta,TEXT(Descrição) AS Descrição;
LOAD * INLINE [
Conta, Descrição
3, Receitas
3.2, Receitas Com Oper. de Assistencia a Saude
3.2.3, Contraprestações Líquidas/Prêmios Retidos
3.3.3.2, Contraprestações Emitidas/Prêmios Assist. Saude
4, Despesas
4.1, Receitas Com Oper. de Assistencia a Saude
4.1.1, Contraprestações Líquidas/Prêmios Retidos
4.1.1.2, Contraprestações Emitidas/Prêmios Assist. Saude
](delimiter is ',');
MapDescrição:MAPPING LOAD TEXT(Conta), TEXT(Descrição) RESIDENT tab1;
NoConcatenate
Final_temp:
LOAD
TEXT(Conta) AS Conta,
if(SubStringCount(Conta,'.')=0,TEXT(Conta)) AS Nivel1
Resident tab1 WHERE IsNull(SubField(Conta,'.',2));
LEFT JOIN (Final_temp)
LOAD
TEXT(SubField(Conta,'.',1)) AS Conta,
TEXT(SubField(Conta,'.',1)&'.'&SubField(Conta,'.',2)) AS Nivel2
Resident tab1 WHERE SubStringCount(Conta,'.')=1;
LEFT JOIN (Final_temp)
LOAD
TEXT(SubField(Conta,'.',1)) AS Conta,
TEXT(SubField(Conta,'.',1)&'.'&SubField(Conta,'.',2)&'.'&SubField(Conta,'.',3)) AS Nivel3
Resident tab1 WHERE SubStringCount(Conta,'.')=2;
LEFT JOIN (Final_temp)
LOAD
TEXT(SubField(Conta,'.',1)) AS Conta,
TEXT(SubField(Conta,'.',1)&'.'&SubField(Conta,'.',2)&'.'&SubField(Conta,'.',3)&'.'&SubField(Conta,'.',4)) AS Nivel4
Resident tab1 WHERE SubStringCount(Conta,'.')=3;
NoConcatenate
Final:
LOAD
Conta,
Nivel1 &' - '&ApplyMap('MapDescrição',Nivel1) AS Nivel1,
Nivel2 &' - '&ApplyMap('MapDescrição',Nivel2) AS Nivel2,
Nivel3 &' - '&ApplyMap('MapDescrição',Nivel3) AS Nivel3,
Nivel4 &' - '&ApplyMap('MapDescrição',Nivel4) AS Nivel4
RESIDENT Final_temp;
drop table tab1, Final_temp;