Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Seleções de listas não se aplicam a expressões?

Ola, Bom dia...

Montei um gráfico TABELA onde demonstro o Maior e o Menor Salario por Empresa.

Mas aqui a UNICA DIMENSÃO utilizada foi o MÊS.

O Maior e Menor salario são apurador através de expressões mostradas abaixo...

Isso funciona perfeitamente, mas observei um comportamento "indesejado"...

Como esta planilha possui expressões para mais de um empresa, quando filtro uma delas na respectiva LISTA, a tabela continua mostrando todos os dados das demais.

Minha, duvida: Neste caso como fazer para que a a seleção realizada na lista se reflita na tabela? ou Isto não é possível quando a dimensão da lista não existe na tabela?

Max ({$<TB_HistoricoEmpresa.NUMEMP={24},TB_HistoricoEmpresa.TIPCON={1,4}>} TB_HistoricoEmpresa.SALARIO_FIXO)

Min ({$<TB_HistoricoEmpresa.NUMEMP={24},TB_HistoricoEmpresa.TIPCON={1,4}>} TB_HistoricoEmpresa.SALARIO_FIXO)

salario.JPG

1 Solution

Accepted Solutions
thiago_mlg
Creator II
Creator II

Alexandre, bom dia!

Isso acontece, muito provavelmente, por que esta fixado na sua expressão, o filtro TB_HistoricoEmpresa.NUMEMP={24}, ou seja, esse filtro fixa a empresa n°24.. se na sua lista você colocar por empresa, ele não vai respeitar o filtro.


Para que a lista respeite o filtro, você deve tirar essa condição.


Max ({$<TB_HistoricoEmpresa.TIPCON={1,4}>} TB_HistoricoEmpresa.SALARIO_FIXO)


Porem, ai teremos um problema, pois quando você filtrar alguma empresa no filtro os valores estarão corretos, porem quando você não filtrar nada, provavelmente não.

Para resolver isso, você pode colocar na expressão

// Neste if, é verificado se o campo TB_HistoricoEmpresa.NUMEMP foi selecionado.

=if(GetSelectedCount(TB_HistoricoEmpresa.NUMEMP={24}) >0,

     Max ({$<TB_HistoricoEmpresa.TIPCON={1,4}>} TB_HistoricoEmpresa.SALARIO_FIXO),

          Max ({$<TB_HistoricoEmpresa.NUMEMP={24},TB_HistoricoEmpresa.TIPCON={1,4}>} TB_HistoricoEmpresa.SALARIO_FIXO))

    

Qualquer dúvida à disposição.


Espero ter ajudado.

View solution in original post

4 Replies
joao_sp_campina
Creator II
Creator II

Bom dia Alexandre,

Na sua expressão você está filtrando uma empresa, certo? TB_HistoricoEmpresa.NUMEMP={24}. No caso a empresa 24. É isto mesmo?


Para você refletir seu filtro na tabela por empresa filtrada, você dever agregar pela realizar uma agregação na expressão pela dimensão que não está na tabela. No seu caso 'Empresa'.


João



thiago_mlg
Creator II
Creator II

Alexandre, bom dia!

Isso acontece, muito provavelmente, por que esta fixado na sua expressão, o filtro TB_HistoricoEmpresa.NUMEMP={24}, ou seja, esse filtro fixa a empresa n°24.. se na sua lista você colocar por empresa, ele não vai respeitar o filtro.


Para que a lista respeite o filtro, você deve tirar essa condição.


Max ({$<TB_HistoricoEmpresa.TIPCON={1,4}>} TB_HistoricoEmpresa.SALARIO_FIXO)


Porem, ai teremos um problema, pois quando você filtrar alguma empresa no filtro os valores estarão corretos, porem quando você não filtrar nada, provavelmente não.

Para resolver isso, você pode colocar na expressão

// Neste if, é verificado se o campo TB_HistoricoEmpresa.NUMEMP foi selecionado.

=if(GetSelectedCount(TB_HistoricoEmpresa.NUMEMP={24}) >0,

     Max ({$<TB_HistoricoEmpresa.TIPCON={1,4}>} TB_HistoricoEmpresa.SALARIO_FIXO),

          Max ({$<TB_HistoricoEmpresa.NUMEMP={24},TB_HistoricoEmpresa.TIPCON={1,4}>} TB_HistoricoEmpresa.SALARIO_FIXO))

    

Qualquer dúvida à disposição.


Espero ter ajudado.

thiago_mlg
Creator II
Creator II

Caso você queria que ela apenas se reflita na tabela, basta na expressão retirar o numero empresa, e colocar esse mesmo campo na dimensão..

DIMENSÃO

Mês

TB_HistoricoEmpresa.NUMEMP

Expressão.

Max ({$<TB_HistoricoEmpresa.TIPCON={1,4}>} TB_HistoricoEmpresa.SALARIO_FIXO)


Att,

Not applicable
Author

Ola Thiago,

Ajustei a expressão para mostrar quando a respectiva empresa estiver selecionada e também quando TODAS estiverem "liberadas".

Funcionou perfeitamente.

Muito Obrigado.

Agora só aproveitando, sabes dizer porque na mesma situação onde tenho apenas a dimensão mês e a expressão com um SUM a tabela NÃO retorna a respectiva coluna do mês quando o SUM for de valor ZERO?

if((GetSelectedCount(TB_HistoricoEmpresa.NUMEMP=24) > 0 or GetSelectedCount(TB_HistoricoEmpresa.NUMEMP) = 0),

   Max ({$<TB_HistoricoEmpresa.NUMEMP={24},TB_HistoricoEmpresa.TIPCON={1,4}>} TB_HistoricoEmpresa.SALARIO_FIXO),0)