7 Replies Latest reply: May 17, 2013 11:02 AM by Stephane Janin RSS

    Rupture conditionnelle sur une valeur de champ

      Voilà, je débute avec Qlikview .

      J'ai créé un rapport contenant un tableau croisé dynamique affichant le CA par client et par mois.

       

      Je souhaiterai dans ce tableau insérer une dimension basée sur une valeur particulière du champ "code famille élémentaire du client" qui me permettrait de regrouper  les clients de type "Industriel" des autres :

       

      Si le code famille élémentaire =  040 => Industriel

      Si autre valeur => Non industriel

       

      Comment réaliser cela  dans qliview : définir une variable à l'aide de quelle fonction ?.

       

      Merci d'avance pour votre aide

        • Re: Rupture conditionnelle sur une valeur de champ

          Je suis absent(e) du bureau jusqu'au 22/03/2013

           

          I am out of the office and get back to you when I return.

           

           

          Remarque : ceci est une réponse automatique à votre message  "[Groupe des

          Utilisateurs Francophones] - Rupture conditionnelle sur une valeur de

          champ" envoyé le 21/3/13 9:23:11.

           

          C'est la seule notification que vous recevrez pendant l'absence de cette

          personne.

           

           

          This message and any attachments (the "message") is

          intended solely for the intended addressees and is confidential.

          If you receive this message in error,or are not the intended recipient(s),

          please delete it and any copies from your systems and immediately notify

          the sender. Any unauthorized view, use that does not comply with its purpose,

          dissemination or disclosure, either whole or partial, is prohibited. Since the internet

          cannot guarantee the integrity of this message which may not be reliable, BNP PARIBAS

          (and its subsidiaries) shall not be liable for the message if modified, changed or falsified.

          Do not print this message unless it is necessary,consider the environment.

          • Re: Rupture conditionnelle sur une valeur de champ
            Richard Pressanti

            Créez une dimension calculée ( Propriétes -> Dimensions -> Dimension Calculée ) valant :

             

            if( [code famille élémentaire du client] = '040' , 'Industriel' , 'Autres' )

              • Re: Rupture conditionnelle sur une valeur de champ

                Je suis absent(e) du bureau jusqu'au 22/03/2013

                 

                I am out of the office and get back to you when I return.

                 

                 

                Remarque : ceci est une réponse automatique à votre message  "[Groupe des

                Utilisateurs Francophones] - Re: Rupture conditionnelle sur une valeur de

                champ" envoyé le 21/3/13 15:37:47.

                 

                C'est la seule notification que vous recevrez pendant l'absence de cette

                personne.

                 

                 

                This message and any attachments (the "message") is

                intended solely for the intended addressees and is confidential.

                If you receive this message in error,or are not the intended recipient(s),

                please delete it and any copies from your systems and immediately notify

                the sender. Any unauthorized view, use that does not comply with its purpose,

                dissemination or disclosure, either whole or partial, is prohibited. Since the internet

                cannot guarantee the integrity of this message which may not be reliable, BNP PARIBAS

                (and its subsidiaries) shall not be liable for the message if modified, changed or falsified.

                Do not print this message unless it is necessary,consider the environment.

                • Re: Rupture conditionnelle sur une valeur de champ

                  Merci beaucoup, cela fait XX temps que je cherchais la solution..

                  Je savais que c'était très simple mais suis passé par diverses tentatives :création de variable, fonction aggr notamment.


                  Je voulais créer une variable pour l'utiliser au même titre que d'autres dimensions

                  En créant avec l'instruction let nomdemavariable =  if( [accounting_center] = 'INVESTISSEMENTS' , 'CASH OUT' , 'RESULTAT' )

                  => je ne sais pas où loger cette instruction (pas dans module visiblement)

                   

                  Ou dans paramètres variables :

                  if( [accounting_center] = 'INVESTISSEMENTS' , 'CASH OUT' , 'RESULTAT' )

                  => la variable s'afiche dans l'éditeur d'expressions, mais l'insertion de la variable en tant que dimension ne donne pas le résultat escompté..

                   

                  Merci pour votre aide si possible !

                    • Re: Rupture conditionnelle sur une valeur de champ
                      Yves Ndjoli

                      Variable 1= if( [accounting_center] = 'INVESTISSEMENTS' , 'CASH OUT' , 'RESULTAT' )

                       

                      dans le champs dimension essaie:

                       

                      $(=$(Variable 1))

                       

                      ou

                       

                      '$(=$(Variable 1))'

                       

                      j'espère que l'une des solutions marchera

                        • Re: Rupture conditionnelle sur une valeur de champ
                          Christophe JOUVE

                          Bonjour,

                          Supposez que vous vouliez créer une dimension basée sur la formule suivante qui inclut des quotes :

                          if(mid(,1,1)='A','Les A','les Autres')

                           

                          Soit vous écrivez votre formule directement dans la dimension calculée, soit vous procédez comme suit :

                           

                          Dans la partie script, créer une variable de type constante par l’instruction SET (par cette instruction, la variable est créée mais la formule à droite du =  n’est pas interprétée. Il faut de plus transformer toutes les quotes en chr(39) pour qu’elles ne prettent pas à confusion dans l’écriture de la formule. Dans notre cas, cela donnera :

                           

                          set vLaDimension='if(mid(,1,1)=' & chr(39) & 'A' & chr(39) & ',' & chr(39) & 'Les A' & chr(39) & ',' & chr(39) & 'les Autres' & chr(39) & ')';

                          Notez l’utilisation de quote en début et en fin de formule. Cela permet de stocker une chaine de caractère dans une variable, cette chaine étant ensuite susceptible de contenir n’importe quoi.

                           

                          Après rechargement de l’application, on voit apparaitre la variable dans la liste des variables associées au document, et rien n’a été interprété :

                           

                          cid:image001.png@01CE524F.29B38D10

                           

                          Maintenant, il suffit d’utiliser cette variable dans une dimension calculée.

                          Problème : si on se contente d’écrire dans la dimension calculée une expression du style =$(vLaDimension), ça ne marche qu’à moitié, parce que la variable est bien remplacée par la formule, mais la formule n’est pas interprétée. Pour faire en sorte que la variable soit remplacée par une formule et que la formule soit ensuite interprétée, il faut utiliser une nouvelle fois l’opérateur $() qui, au-delà de la substitution, permettra également d’interpréter une formule de calcul.

                          Donc au final, l’écriture de votre dimension calculée deviendra =$(=$(vLaDimension)). Voici la formule dans la fenêtre de la dimension calculée :

                          cid:image002.png@01CE524F.9E4D6790

                          Essayez, ça marche. Cette méthode a pour avantage de vous permettre de stocker toutes vos formules dans des variables, elles-mêmes stockées dans un script qui peut par la suite être externalisé à l’application sous la forme d’un simple fichier texte en général suffixé en .qvs et appelé par des instruction du type $(include=’monprogramme.qvs’). Dans ce cas, précis, le fichier monprogramme.qvs contiendrait du code script qlikview qui serait ensuite exécuté au rechargement de l’application.

                           

                          Cdt

                           

                           

                           

                          Christophe Jouve

                          Senior Solution Architect

                           

                          Direct: +33 1 55 62 65 54

                          Mobile: +33 6 76 24 22 47

                          Email:  Christophe.Jouve@qlik.com

                           

                          QlikTech

                          France Headquarters Office,93 avenue Charles de Gaulle

                          92200 Neuilly sur Seine

                           

                          qlik.com<http://www.qlik.com/>

                           

                           

                          18 octobre 2012 | De la Business Intelligence à la Business Discovery...

                           

                          http://www.qlikview.fr/BDWT-Paris

                           

                          The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any computer.

                            • Re: Rupture conditionnelle sur une valeur de champ

                              ça marche parfaitement merci à tous les deux. Je peux donc utiliser la variable comme nouvelle dimension. J'arrive au même résultat en faisant un set analysis dans l'expression de calcul.

                               

                              Ce que je ne comprends pas, c'est la raison pour laquelle je ne peux pas utiliser la variable pour filtrer selon le résultat de ma variable dans un set analysis ou un if :

                              J'entre dans mon expression calculée :

                              sum({<CASHOURESULTAT={'RESULTAT'}>} account_cost)

                               

                              Sum({$< CASHOURESULTAT = 'RESULTAT'>}account_cost)

                               

                              Le grahique s'affiche mais ne filtre pas , j'ai les deux valeurs correspondant au calcul de la variable dans le script (RESULTAT ET INVESTISSMENT)

                              J'ai également essayé ceci sur base d'un post mais pas de résultat, peut être une erreur de syntaxe ?

                              sum ({<CASHOURESULTAT={$(=('INVESTISSEMENTS')}>} account_cost))

                               

                              Merci pour votre aide !