Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Olá pessoal,
Estou enfrentando um desafio estrutural envolvendo Medidas Mestre dependentes de contexto no Qlik Sense e gostaria de uma orientação sobre qual seria a melhor abordagem arquitetural.
Cenário
Tenho uma medida mestre chamada ROE. Segue a estrutura:
If(
$(vMesTrimestralValido) = 1 and $(vVisaoConsolidada) = 1,
[Lucro Líquido Ajustado com Desp. CRA] /
(
[Patrimônio Líquido Dislub]
+ [CRA Sócios Equador]
+ [Mútuo Sócios Eq.Dislub]
),
0
)
Como mostrado acima, essa medida depende de outras 4 medidas mestre.
Essas medidas possuem lógica condicional baseada em:
GetSelectedCount(Ano)
GetSelectedCount(Mês)
Max(Ano)
Max(Data)
Today()
Variáveis dinâmicas
Estruturas com If() aninhado
Exemplo de uma das variáveis utilizadas internamente:
=If(
GetSelectedCount(Ano)=1 and GetSelectedCount(Mês)=1,
Year(AddMonths(MonthStart(Max(Data)),-11)) & Num(Month(AddMonths(MonthStart(Max(Data)),-11)),'00'),
If(GetSelectedCount(Ano)=1 and Max(Ano) < Year(Today()),
Max(Ano) & '01',
If(GetSelectedCount(Ano)=1 and Max(Ano)=Year(Today()),
Year(AddMonths(Max(Data),-12)) & Num(Month(AddMonths(Max(Data),-12)),'00'),
Year(AddMonths(Max(Data),-12)) & Num(Month(AddMonths(Max(Data),-12)),'00')
)
)
)
Ou seja, toda a lógica do ROE é fortemente dependente do estado atual de seleção ($).
🎯 Necessidade
Preciso criar um KPI que traga o valor do ROE do Ano Anterior, considerando o ano atualmente selecionado.
❗ Tentativas realizadas
Já tentei:
Utilizar Alternate State
Utilizar AGGR() com MAX()
Aplicar Set Analysis externo
Porém, o valor retornado fica diferente do esperado ou retorna nulo, pois a lógica interna depende de GetSelectedCount() e do estado ativo.
📌 Estrutura das medidas internas (exemplo)
Segue um exemplo de Set Analysis utilizado dentro das medidas que compõem o ROE:
{<
Flag_EmpresasGeral = {1},
Ano,
Mês,
AnoMes = {">=$(vAnoMesMin)<=$(=vAnoMesMax)"}
>}
([Lucro/Prejuízo Ajustado]
+ [Despesa Financeira CRA]
+ [Despesa Financeira Mútuo])
Não sei se foi erro de transcrição, mas aqui faltou um = pra que o retorno da variável vAnoMesMin seja o valor calculado dentro dela e não a expressão dela.
{<
Flag_EmpresasGeral = {1},
Ano,
Mês,
AnoMes = {">=$(=vAnoMesMin)<=$(=vAnoMesMax)"}
>}
([Lucro/Prejuízo Ajustado]
+ [Despesa Financeira CRA]
+ [Despesa Financeira Mútuo])