Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Remi
Contributor
Contributor

supprimer des mots d'un champ

Bonjour,

 

Je fais mes débuts dans qlikview et je suis en train de créer un tableau de bord pour mon activité professionnelle, et dans un des champs que j'ai intégré, j'ai des "tag" en plus des valeurs que je voudrais supprimer.

mon champ s'appelle "Ressource concernée" et les valeurs sont sous forme de texte (par exemple "EMISSION") et parfois se rajoutent un "tag" qui nous permet de différencier certaines infos. il y a 4 tag différents ('[MO]','[MR]','[HP]','[LB5]') , et ils peut y avoir 1, 2,3 ou 4 tags sur une seule ressource concernée. N'importe lesquels et dans n'importe quel ordre. Et pour faciliter encore les choses, ils peuvent être séparés ou non par des espaces (les champs sont à l'origine remplis manuellement)

TAG.PNG

dans mon tableau, je cherche à supprimer ces tags pour ne garder que le texte du début (exemple d'après l'image ci-dessus, pour "demande suppression", je ne voudrais plus qu'une seule ligne.

 

j'ai essayé dans un premier temps de travailler dans le script en imbriquant des "replace" et des "trim", mais sans grande réussite.

après qq recherches, je suis tombé sur le poste qui parle de "textbetween" qui me semblait prometteur, mais il faut un caractère de début, or je n'en n'ai pas, je veux garder tout le début, et si je mets '' en guise de 1er caractère,

trim(TextBetween([Ressource concernée],'','[')) as [Ressource concernée sans TAG]

je perds bien les fameux tag à la fin, mais j'ai aussi perdu les valeurs complètes d'environ 10000 de mes valeurs sur 15000

perte valeurs.PNG

 

Auriez-vous une solution à mon problème SVP?

merci pour votre aide

2 Solutions

Accepted Solutions
Taoufiq_Zarra

Bonjour,

des valeurs manquantes, c'est parce que la fonction TextBetween retourne null si vous avez pas de tag dans le champs

je vous propose d'ajouter juste la condition :

if(not isnull(trim(TextBetween([Ressource concernée],'','['))),trim(TextBetween([Ressource concernée],'','[')) ,[Ressource concernée]) as [Ressource concernée sans TAG]

 

Regards,
Taoufiq ZARRA

"Please LIKE posts and "Accept as Solution" if the provided solution is helpful "

(you can mark up to 3 "solutions") 😉

View solution in original post

christophebrault
Specialist
Specialist

Bonjour,

Si le "[" est toujours utilisé pour les tags, un simple subfield peut suffire à ton besoin :

Trim(Subfield([Ressource concernée,"[",1))

Inscrivez vous à ma Newletter Qlik
DoNotMissQlik- Connect with me on Linkedin

View solution in original post

4 Replies
Taoufiq_Zarra

Bonjour,

des valeurs manquantes, c'est parce que la fonction TextBetween retourne null si vous avez pas de tag dans le champs

je vous propose d'ajouter juste la condition :

if(not isnull(trim(TextBetween([Ressource concernée],'','['))),trim(TextBetween([Ressource concernée],'','[')) ,[Ressource concernée]) as [Ressource concernée sans TAG]

 

Regards,
Taoufiq ZARRA

"Please LIKE posts and "Accept as Solution" if the provided solution is helpful "

(you can mark up to 3 "solutions") 😉
Remi
Contributor
Contributor
Author

C'est exactement ce qu'il me manquait, merci bcp pour votre aide

christophebrault
Specialist
Specialist

Bonjour,

Si le "[" est toujours utilisé pour les tags, un simple subfield peut suffire à ton besoin :

Trim(Subfield([Ressource concernée,"[",1))

Inscrivez vous à ma Newletter Qlik
DoNotMissQlik- Connect with me on Linkedin
Remi
Contributor
Contributor
Author

ça marche aussi très bien, merci bcp 🙂