5 Replies Latest reply: Jan 26, 2015 2:34 PM by François Cavé RSS

    Utilisation des Set Analysis au lieu de la fonction IF

      Bonjour à tous,

       

      Débutant sur Qliqview, je créé mon premier tableau de bord financier. J'ai commencé par lire les quelques 230 pages du tutorial Qlikview pour me familiariser avec les bases du logiciel.

      Sur ce site j'ai également lu le document pdf sur les set analysis.

       

      Je rencontre un problème dans la conception de mon tableau de bord.

       

      Je souhaite créé un tableau de bord de trésorerie. J'ai chargé les éléments financiers (balance des comptes).

      J'ai donc des comptes comptables, et des montants.

      Jusqu'ici pas de soucis.

       

      J'ai créé un simple graphique pour l'instant pour tester.

      J'aimerai sélectionner seulement les comptes de trésorerie dans ce graphique et non pas tous les comptes.

       

      Mes comptes comptables de trésorerie sont compris dans les fourchettes de comptes suivantes :

      De 50700000 à 50879999

      De 50900000 à 51799999

      De 51900000 à 51979999

      De 51990000 à 53900000

       

      Comme vous pouvez le constater certains comptes sont exclus.

       

      Pour traiter ce problème, j'ai d'abord pensé à créer des variables. En effet, dans le cas ou certains comptes viendraient à être modifié, je pourrai simplement modifier la variable en question.

      DebutTreso1 = 50700000

      FinTreso1 = 50879999

      DebutTreso2 = 50900000

      FinTreso2 = 51799999

      ...

       

      J'ai également créé des variables pour borner la sélection de mes écritures :

      DateDebutEcriture

      DateFinEcriture

       

      Dans l'onglet expression de mon expression de mon graphique, dans la case Définition, j'ai rentré l'expression suivante :

       

      Sum({$<[Date écriture]={">=$(=DateDebutEcriture)"}*{"<=$(=DateFinEcriture)"},[Numéro de compte] ={">=$(=DebutTreso1)"}*{"<=$(=FinTreso1)"},[Numéro de compte] ={">=$(=DebutTreso2)"}*{"<=$(=FinTreso2)"},[Numéro de compte] ={">=$(=DebutTreso3)"}*{"<=$(=FinTreso3)"},[Numéro de compte] ={">=$(=DebutTreso4)"}*{"<=$(=FinTreso4)"}>}Solde)

       

      Problème...cette expression ne fonctionne pas bien:

      -J'ai bien les bonnes dates sélectionnées, mais je n'ai que les comptes compris entre mes variables DebutTreso4 et FinTreso4...

      Les comptes dans les autres fourchettes ne sont pas pris en compte ?

       

      Est-ce que j'ai raté quelque-chose ?

       

      Est-ce qu'il existe une solution plus simple ? J'ai peut-être monté une usine à gaz

       

      Merci par avance pour votre aide

       

      Cordialement,

        • Re: Utilisation des Set Analysis au lieu de la fonction IF
          Massimo Grossi

          What about using a flag you set at the reload time to identify your  comptes?

          You can use your variables to identify start1...end1, start2...end2, at the beginning of the script and use them to set the flag; when the comptes range changes, change the variables before the reload.

          Then in the user interface the set analysis is very simple, something as

          sum($(<FlagTresorerie={1}>} Solde)

          • Re: Utilisation des Set Analysis au lieu de la fonction IF
            David B.

            Bonjour Julien,

            Étant moi même contrôleur de gestion, je te conseillerai d'essayer de catégoriser tes comptes comptables en amont.

            (à partir de ton outil d'extraction, ou dans ton fichier excel, ou via le script qlikview)

            Ainsi au chargement des données tu disposes d'un axe d'analyse supplémentaire (cpte bancaire fournisseurs, rglts clients, ...).

            Sinon tu peux inclure ce dimensionnement dans le chargement du script avec des if (même si c'est pas très joli)

            if ( Compte >= .... and(compte <= ....), ' Trso1 ', if (Compte >= .... and(Compte <= ....), ' Treso 2', ' Treso 3')) as CategorieTreso

             

            Tu disposeras par la suite d'une dimension CategorieTreso sur laquelle tu pourras mettre en évidence tes variations ... sans compliquer les set analysis.

             

            A ta dispo si tu as besoin de plus d'explication,

             

            Cordialement,

            • Re: Utilisation des Set Analysis au lieu de la fonction IF
              François Cavé

              Bonjour Julien,

              Comme David, je partirai également sur une catégorisation de tes comptes.

              Une façon plus simple serait de créer (manuellement ou à l'aide de fonction) une table de mapping qui contiendrai deux champs : tes numéros de comptes et les catégories.

              Pour cela, il suffit de charger avant ta table qui contient le champ Numéro de Comptes, une table de mapping:

               

              Data_mpg:

              Mapping Load

                   NumérosDeCompte,

                   Catégorie

              From TonFichierExcel.xls;

               

              Puis d'insérer dans le chargment de ta table où il y a le champ Numéro de Comptes la fonction Applymap.

               

              Data:

              Load

                   ...

                   NumérosDeCompte,

                   ApplyMap('Data_mpg',NumérosDeCompte,'Pas trouvé') as Catégorie

                   ...

              From MaSource;

               

              C'est une fonction qui peut s'apparenter à RECHERCHEV sous Excel... Je sais séduire les contrôleurs de gestion ;-)...

              Il te sera facile de faire des Set Analysis à partir de ce "flag" Catégorie:

              Sum({<Catégorie={'Trésorerie'}>}Facture) par exemple.

               

              A bientôt, et reviens vers nous si tu as besoin d'aide,

              François