7 Replies Latest reply: Jun 5, 2016 4:34 PM by david moussard RSS

    > Script : Mapping de table

    david moussard

      Bonjour à tous,

       

      je réalise actuellement un suivi de relevés de compte sous Qlikview.

       

      J'ai réussi à générer une courbe de suivi du solde par date.

       

      Je souhaiterais maintenant affecter des catégories aux opérations pour évaluer leur poids et suivre des budgets.

       

      Je souhaite donc mapper la colonne détail de l'opération avec une table de mappage qui contiendrait les catégories.

       

      Exemple : "Carte Bancaire du 10/02 chez MacDo" ---> à mapper par ----> "CB"

       

      Le soucis, c'est que je souhaite mapper qu'une partie du champ, ici  "Carte Bancaire". Car le reste varie selon la date ou le lieu.

       

      Je n'ai pas trouvé de fonction de mapping qui permettrait de mapper une partie de la valeur d'un champ.

       

      Merci par avance pour vos idées.

       

      Cdlt.

       

      David

        • Re: > Script : Mapping de table
          Mambi Badi

          je n'ai pas bien compris ton problème mais il se trouve qu'il y est une fonction left(ton_champ, nombre de caractère)

          qui permet d'extraire une partie d'une chaine ensuite tu pourras la comparer

            • Re: > Script : Mapping de table
              david moussard

              J'ai ajouté un fichier excel type pour illustrer mon besoin.

               

              J'ai effectivement essayé le left mais cela complique le script et il me faut quasiment 24 left pour associer toutes les catégorie à la colonne libéllé.

               

              Sans compter que parfois le texte à mapper est au milieu de la chaine de caractère du champ.

               

              En fait, il faudrait que je puisse matcher une chaine de caractère définie dans le champ libellé et affecter une catégorie.

               

              Je pensais que je pouvais mapper le champ libellé un peu comme MapSubstring() mais sans garder les autres charactères du champ pour obtenir un champ catégorie.

               

              Je vais essayer une combinaison avec MapSubstring() et SubField() pour isoler ma catégorie grace au délimiteur.

               

              A suivre...

                • Re: > Script : Mapping de table
                  Xavier Retaillaud

                  Bonjour,

                   

                  Si Left() ne convient pas tu peux essayer avec WildMatch()

                   

                  Cordialement,

                  Xavier.

                    • Re: > Script : Mapping de table
                      david moussard

                      J'ai testé Wildmatch et cela fonctionne parfaitement, le soucis c'est que je suis obligé de modifier le script si je dois matcher une autre chaine de caractère.

                       

                      Or, j'aurai souhaité lister dans un fichier excel externe toutes les chaines de caractère d'une catégorie afin de gérer cette liste plus facilement.

                       

                      A ton avis, est-il possible de contenir toutes les chaines de caractère dans la partie expression de Wildmatch ? peut-être avec une expansion $ ?

                       

                      Wildmatch (s, expr1 [,expr2, ...exprN])

                        • Re: > Script : Mapping de table
                          Xavier Retaillaud

                          Ci-joint un exemple trouvé sur le net pour un "Wildmatch ApplyMap" :

                           

                          table1:
                          MAPPING LOAD
                          match
                          ,':' & description & ':' as description
                          INLINE [
                          match, description
                          LS01, team1
                          LS02, team2
                          LS03, team3
                          ];

                          table2:
                          LOAD *
                          ,rangeminstring('others',subfield(mapsubstring('table1',string),':',2)) as description
                          INLINE [
                          string, value
                          AALS01DD, 10
                          ABLS01EE, 20
                          ACLS02GG, 50
                          LLLS02EE, 10
                          RRLS03QQ, 50
                          TTLS05QQ, 10
                          ];


                          Merci à John Witherspoon


                          wildmatch and looping though table

                            • Re: > Script : Mapping de table
                              david moussard

                              Bonjour,

                               

                              avec un an de retard je vous remercie pour votre réponse car j'ai fini par trouver le temps de terminer mon script et cela fonctionne parfaitement.

                               

                              Un grand merci.

                               

                              Note :

                              Attention au séparateur utilisé pour le subfield, j'ai eu un petit soucis car mes données contenaient le même séparateur donc ça prenait un peu n'importe quoi dans ma chaîne de caractère.

                              J'ai finalement mis un ; à la place du : dans le script.

                    • Re: > Script : Mapping de table
                      Almamy DIABY

                      if(substringcount(Libellé, 'CARTE')>0,'CB',Libellé) as CATEGORIE,