6 Replies Latest reply: Jan 25, 2018 11:54 AM by THIAGO TEIXEIRA RSS

    Contar valores iguais e maiores que o filtro

    Carlos Andrade

      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

        • Re: Contar valores iguais e maiores que o filtro
          THIAGO TEIXEIRA

          Que tal isso:

           

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

            • Re: Contar valores iguais e maiores que o filtro
              THIAGO TEIXEIRA

              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))

              )

            • Re: Contar valores iguais e maiores que o filtro
              THIAGO TEIXEIRA

              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.


              • Re: Contar valores iguais e maiores que o filtro
                THIAGO TEIXEIRA

                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!

                • Re: Contar valores iguais e maiores que o filtro
                  Carlos Andrade

                  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!