8 Replies Latest reply: Jan 28, 2014 7:57 AM by Maureen Dhondt RSS

    Set analysis sur sélection active et sur le total

      Bonjour à tous,

       

      Je suis une nouvelle fois confrontée à un problème.

       

      Dans une zone de texte, j'aimerais afficher le pourcentage des sélections actives sur le total des enregistrements.

      Jusque là tout va bien, j'ai écrit cette formule :

      ='La sélection représente ' & round((sum(nb)/sum({1<etat={'>=0'}>}nb))*100,0.1) & ' % du total'.

       

      J'ai le pourcentage du nombre de sélections actives divisés par le nombre d'enregistrements total.

       

      NB : toutes les valeurs de etat sont supérieurs ou égales à 0 dans le fichier.

       

      Le résultat est correct.

       

      Voici ma complication :

      Je voudrais que le calcul se fasse sur le total de la période sélectionnée et non pas sur le total de toute ma table.

      Je ne sais pas comment m'y prendre étant donné que pour avoir le pourcentage des sélections active sur le total, je mets un 1 dans le set analysis pour avoir tous les enregistrements.

       

      Auriez-vous une idée pour m'aider à résoudre mon problème ?

       

      Je vous remercie par avance.

       

      Bonne fin de journée

       

      Maureen

        • Re: Set analysis sur sélection active et sur le total

          Maureen,

           

          Il faut justement retirer le 1 qui signifie TOUT et mettre $ à la place qui signifie "les sélections actives".

          Le set analysis peut aussi se faire sur plusieurs dimensions.

           

          Fabrice

            • Re: Set analysis sur sélection active et sur le total

              Fabrice,

               

              Si j'enlève le 1, mon pourcentage sera toujours égal à 100 % étant donné qu'il divisera la sélection active par la sélection active. De ce fait je n'obtiens pas le résultat désiré...

               

              Je pense que je n'ai pas été assez claire dans ma demande.

              J'aimerais avoir mon pourcentage qui me dirait,

              "Vous avez sélectionné XX % du total sur la période sélectionnée "

               

              Admettons si je veux me concentrer sur les mois de février et mars 2013.

               

              J'aimerai diviser le nombre de personnes avec les caractéristiques choisies dans les listes de sélections par le nombre de personnes totale des mois de février et de mars.

               

               

              Maureen

                • Re: Set analysis sur sélection active et sur le total

                  Maureen,

                   

                  Il faut donc bien mettre $ et compléter le set analysis. Ce que vous souhaitez au dénominateur, ce sont toutes les personnes. On met donc Personnes= ou Personnes={*} pour faire qch comme: 100*sum(nb)/sum({$<etat={'>=0'}, Personnes=>}nb)

                  Même si je ne sais pas pourquoi il y a le test sur Etat. Dans le set, on peut fixer autant de dimensions que voulues. Si les dimensions sont interdépendantes, comme Mois/Trimestre/Année, fixer la seule Année à 2012 ne signifie pas que l'on prend tous les mois de 2012 mais les mois sélectionnés. Si on veut tous les mois il faut alors faire Mois=, Trimestre=, Année={2012}

                   

                  J'ai fait un doc sur les set analysis. Il peut vous être utile. En français en plus:

                  http://community.qlik.com/docs/DOC-4889

                   

                  Fabrice

                    • Re: Set analysis sur sélection active et sur le total

                      Fabrice,

                       

                      Merci pour votre document, il me paraît très complet.

                      Je n'ai cependant pas trouver la solution de mon problème.

                      Je pense que je m'exprime vraiment mal et que je n'arrive pas à vous l'exposer.

                       

                      Ma variable nb est une colonne dans ma table égale à 1 partout. Comme dans la table que l'on ma fournie je n'ai pas de clé primaire, j'ai cette variable qui me permet de faire mes calculs. Pour le moment j'ai en base l'année 2013.

                       

                      Oublions la variable etat, je me suis embrouillée.

                       

                      Je cherche à afficher pour l'utilisateur le pourcentage de personnes sélectionnées par rapport au nombre de personnes total sur la période sélectionnée.

                       

                      J'ai plusieurs listes de sélections, des "filtres". Ce sont par exemple la CSP, l'âge, la situation familiale...

                       

                      Admettons si je sélectionne les employés âgés de moins de 30 ans.

                      Je voudrais savoir ce qu'ils représentent sur le total.

                       

                      donc avec cette formule, j'ai ma réponse : sum(nb)/sum({1}nb)

                       

                      Ce qui m'ennuie c'est que si je sélectionne une période (semaine, mois, trimestre ou année), il me fait la même formule et donc j'ai le pourcentage de personnes sélectionnées sur le total de ma base. Or, j'aimerai avoir le pourcentage de personnes sélectionnées sur le total des personnes de la période sélectionnée.

                       

                      Pour tenter d'être plus concrète, reprenons l'exemple :

                       

                      Je filtre sur les employés âgés de moins de 30 ans et je sélectionne la période du 15/01/2013 au 12/02/2013.

                       

                      Ma formule va me donner le pourcentage de personnes employées de moins de 30 ans et étant enregistrée en base entre le 15/01/2013 et le 12/02/2013 sur toute l'année 2013.

                       

                      Alors que j'aimerais avoir le pourcentage du nombre personnes employées de moins de 30 ans divisé par le nombre total de personnes enregistrées entre le 15/01/2013 et le 12/02/2013.

                       

                      Merci de votre temps,

                       

                      Bonne journée

                       

                      Maureen