Skip to main content
Announcements
Global Transformation Awards! Applications are now open. Submit Entry
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Contar valores iguais e maiores que o filtro

Preciso apresentar no gráfico a quantidade de funcionários que detém determinada qualificação(competência).

Vamos supor no exemplo abaixo.

Possuo 22 funcionários que conhecem SQL e cada qual com um determinado nível de conhecimento (id_nível).

Ao selecionar o id_Nivel 4, o gráfico apresenta a contagem de 5 funcionários, porém, eu quero que a contagem apresente 13 funcionários, ou seja, me mostre a quantidade do nível filtrado mais a quantidade do nível acima. (contagem dos funcionários onde o nível seja >= 4)

img.png

Labels (3)
1 Solution

Accepted Solutions
Thiago_Justen_

Só pra explicar um pouco do que fiz:

If(GetSelectedCount(id_Nivel)<1, //Aqui se não houver nível selecionado contamos todos os funcionários


count(SUA_DIMENSAO_FUNCIONARIO),

If(GetSelectedCount(id_Nivel)>1, //Aqui se houver mais de um nível selecionado pegamos o menor nível e contamos a partir dele

count({<CD_NOTA{">=$(=num(Left(GetFieldSelections(id_Nivel),1)))"}>}SUA_DIMENSAO_FUNCIONARIO),count({<id_Nivel=">=$(=GetFieldSelections(id_Nivel))"}>}SUA_DIMENSAO_FUNCIONARIO))

)

Por que o left aqui?


num(Left(GetFieldSelections(id_Nivel),1)


Como o GetFieldSelections devolve uma string preciso "extrair" dessa string o valor que ocupa a primeira posição, ou seja, o menor nível selecionado. Daí o converto em número pra não bugar o set analysis.


Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago

View solution in original post

6 Replies
Thiago_Justen_

Que tal isso:

Count({<id_Nivel={">=$(=GetFieldSelections(id_Nivel))"}>}DISTINCT SUA_DIMENSAO_FUNCIONARIO)

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
Thiago_Justen_

O GetFieldSelections(id_Nivel) fará o trabalho de deixar o gráfico como você quer. Repare que enquanto não houver nível selecionado, com essa fórmula o resultado é zero. Mas podemos tratar isso (o fato de não haver nível selecionado).

Ficaria assim:

If(GetSelectedCount(id_Nivel)<1,count(SUA_DIMENSAO_FUNCIONARIO),

          If(GetSelectedCount(id_Nivel)>1,count({<CD_NOTA{">=$(=num(Left(GetFieldSelections(id_Nivel),1)))"}>}SUA_DIMENSAO_FUNCIONARIO),count({<id_Nivel=">=$(=GetFieldSelections(id_Nivel))"}>}SUA_DIMENSAO_FUNCIONARIO))

)

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
Thiago_Justen_

Só pra explicar um pouco do que fiz:

If(GetSelectedCount(id_Nivel)<1, //Aqui se não houver nível selecionado contamos todos os funcionários


count(SUA_DIMENSAO_FUNCIONARIO),

If(GetSelectedCount(id_Nivel)>1, //Aqui se houver mais de um nível selecionado pegamos o menor nível e contamos a partir dele

count({<CD_NOTA{">=$(=num(Left(GetFieldSelections(id_Nivel),1)))"}>}SUA_DIMENSAO_FUNCIONARIO),count({<id_Nivel=">=$(=GetFieldSelections(id_Nivel))"}>}SUA_DIMENSAO_FUNCIONARIO))

)

Por que o left aqui?


num(Left(GetFieldSelections(id_Nivel),1)


Como o GetFieldSelections devolve uma string preciso "extrair" dessa string o valor que ocupa a primeira posição, ou seja, o menor nível selecionado. Daí o converto em número pra não bugar o set analysis.


Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
Thiago_Justen_

Bom dia Carlos,

Se alguma das soluções apresentadas lhe serviu para resolver o problema, favor, feche a thread marcando aquelas respostas que lhe foram úteis com a flag "Útil" e escolha uma para marcar como "Correta".

Manual do usuário | Como criar e gerir minhas perguntas?

Abs e Sucesso!

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
Anonymous
Not applicable
Author

Thiago, bom dia!

Sua resposta me ajudou bastante e atendeu perfeitamente a pergunta que eu fiz, só que testando em minhas dimensões encontrei alguns problemas, um deles foi que a análise funcionava apenas se eu clicasse no filtro de nível e eu preciso utilizar essa contagem quando o filtro de outras dimensões afetassem o nível.

Com sua explicação pesquisei mais um pouco e estudei melhor o set analysis e cheguei ao resultado abaixo

=Count({$1<id_Nivel_Recurso={">=$(varNivelRecurso)"}, id_Competencia_Recurso={$(varCompetencia)}>}CompetenciaRecurso)

Ao selecionar qualquer objeto que afete a dimensão "id_nivel" eu armazeno o nível na variável e adicionei na expressão a competência também, e sempre que, por exemplo, eu quiser verificar as competências necessárias para um projeto com seu respectivo nível desejado, consigo visualizar quantos funcionários tenho a disposição.

Obrigado e espero que possamos continuar a nos auxiliar!

Thiago_Justen_

Perfeito Carlos! A ideia da comunidade é mesmo, trocar experiencias e ajudarmos uns aos outros.

Considero sempre importante fazer  o que você fez: não ficar preso à solução dada aqui e pesquisar as funções e métodos que desconhecemos sempre no Qlik Help.

E ficamos assim; sempre que precisar, estamos à disposição!

Abs e Sucesso!!

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago