Comment extraire une chaîne de caractère d’une autre séparée par un délimiteur dans Qlikview ?

0
39

SubField(text, delimiter[, field_no ])

Argument Description
text Chaîne d’origine. Il peut s’agir d’un texte codé de manière irréversible, d’une variable, d’une expansion dollar ou d’une autre expression.
delimiter Caractère inclus dans la chaîne d’entrée text qui divise la chaîne en plusieurs composants.
field_no Le troisième argument, facultatif, est un entier spécifiant laquelle des sous-chaînes de la chaîne parent text doit être renvoyée. Utilisez la valeur 1 pour renvoyer la première sous-chaîne, la valeur 2 pour renvoyer la deuxième sous-chaîne, et ainsi de suite.

  • Si field_no est une valeur positive, les sous-chaînes sont extraites de gauche à droite.
  • Si field_no est une valeur négative, les sous-chaînes sont extraites de droite à gauche.

 

Exemple Résultat
SubField(S, ‘;’ ,2) Renvoie ‘cde’ si S correspond à ‘abc;cde;efg’.
SubField(S, ‘;’ ,1) Renvoie une chaîne vide si S est une chaîne vide.
SubField(S, ‘;’ ,1) Renvoie une chaîne vide si Scorrespond à ‘;’.
Ajoutez l’exemple de script à votre application et exécutez-le. Ensuite, ajoutez au moins les champs répertoriés dans la colonne des résultats à une feuille de votre application afin de visualiser le résultat.

FullName:

LOAD * inline [

Name

‘Dave Owen’

‘Joe Tem’

];

SepNames:

Load Name,

SubField(Name, ‘ ‘,1) as FirstName,

SubField(Name, ‘ ‘,-1) as Surname

Resident FullName;

Drop Table FullName;

Name FirstName Surname
Dave Owen Dave Owen
Joe Tem Joe Tem
Imaginons que vous ayez une variable contenant le nom de chemin d’accès vMyPath,

Set vMyPath=\Users\ext_jrb\Documents\Qlik\Sense\Apps;.

 

Dans un graphique de type texte et image, vous pouvez ajouter une mesure telle que :
SubField(vMyPath, ‘\’,-3), ce qui aboutit à Qlik, car il s’agit de la troisième sous-chaîne en partant de l’extrémité droite de la variable vMyPath.
Cet exemple montre comment l’utilisation de plusieurs instances de la fonction Subfield(), chacune omettant le paramètre field_no, à partir de la même instruction LOAD crée des produits cartésiens de toutes les combinaisons. L’option DISTINCT est utilisée pour éviter de créer des enregistrements en double.

Ajoutez l’exemple de script à votre application et exécutez-le. Ensuite, ajoutez au moins les champs répertoriés dans la colonne des résultats à une feuille de votre application afin de visualiser le résultat.

LOAD DISTINCT

Instrument,

SubField(Player,’,’) as Player,

SubField(Project,’,’) as Project;

Load * inline [

Instrument|Player|Project

Guitar|Neil,Mike|Music,Video

Guitar|Neil|Music,OST

Synth|Neil,Jen|Music,Video,OST

Synth|Jo|Music

Guitar|Neil,Mike|Music,OST

] (delimiter is ‘|’);

Instrument Player Project
Guitar Mike Music
Guitar Mike Video
Guitar Mike OST
Guitar Neil Music
Guitar Neil Video
Guitar Neil OST
Synth Jen Music
Synth Jen Video
Synth Jen OST
Synth Jo Music
Synth Neil Music
Synth Neil Video
Synth Neil OST

LEAVE A REPLY

Please enter your comment!
Please enter your name here