2 Replies Latest reply: Mar 20, 2017 12:42 PM by louis ernould RSS

    séparer String en une même dimension

    louis ernould

      Hello la Q-Community,

       

      Je suis en train de bloquer sur un petit souci de script. Je pense que c'est faisable... :/ ca me semble compliqué alors que c'est doit etre tout con, mais bon, quand on bloque, on bloque

       

      j'ai un doc excel que j’intègre sur du Qlik (car j'ai ce même fichier tous les jours, donc c'est pour avoir une visu agrégée).

      en gros  ce fichier ressemble à ca :

       

      référenceprobleme
      123probleme A, probleme B, probleme C
      234probleme A
      345probleme A, probleme B

       

      Je veux juste avoir le nombre de références par probleme : Count(référence), mais je bugge sur la séparation des problemes la ou il y a des virgules (ref 123 et 345 sur mon exemple). j'ai essayé subfield(probleme,',') , mais ca me prend que le premier probleme et pas les suivants.

       

      en gros j'aimerai avoir ca :

      Probleme Aprobleme Bprobleme C
      321

       

      si quelqu'un peut me sortir l'épine du pied, ca serait chouette !

       

      merci beaucoup

       

      Louis

        • Re: séparer String en une même dimension
          Sébastien Fatoux

          Bonjour,

           

          Tu peux ajouter ça à ton script de chargement (en utilisant le nom de ta table)

           

           

          LOAD
          référence,
          Trim(SubField(probleme,',')) as probleme2
          Resident TaTable;

           
          DROP Field probleme;
          RENAME Field probleme2 to probleme;

           

          Et à la place d'avoir :

          référenceprobleme
          123probleme A, probleme B, probleme C
          234probleme A
          345probleme A, probleme B

           

          tu auras :

          référenceprobleme
          123

          probleme A

          123probleme B
          123probleme C
          234probleme A
          345probleme A
          345probleme B

           

          Tu pourras alors très facilement créer un tableau dynamique avec la dimension probleme que tu mettras en colonne et l'expression Count(probleme)

           

          C'est le plus simple.

           

          Sinon tu peux utiliser directement les expressions:

          • count(if(WildMatch(probleme, '*problem A*'), 1, 0)) pour compter les problème A
          • count(if(WildMatch(probleme, '*problem B*'), 1, 0)) pour compter les problème B
          • count(if(WildMatch(probleme, '*problem C*'), 1, 0)) pour compter les problème C