Qlik Community

Groupe des Utilisateurs Francophones

Vous êtes francophone? Ce groupe est pour vous. Venez découvrir comment démarrer avec Qlik Sense et QlikView, poser vos questions et partager vos tutos et astuces avec les membres de notre communauté.

Highlighted
axel_bgd
Contributor II

Flagger une chaine de caractère d'un champ

Bonjour à tous,

Je recherche à Flagger des données d'un champ et je suis confronté à quelques problèmes.

Voici ce qu'on peut trouver dans la table ou je souhaiterai effectuer un tri.

   

A
1234567
12345678
123456789
123.567
123.5678
123.56789
PA010540

H1101.442

Dans mon script j'ai réalisé les points suivants :

- insertion de mon champ via un QVD

- len(champ) as NBR_CARACT_CHAMP1

J'ai par la suite 3 nombres qui se mette dans cette table NBR_CARACT_CHAMP1 = 7 / 8 / 9

Chose paradoxal, quand je sélectionne 8 de la table NBR_CARACT_CHAMP1 j'ai des champs qui sont égal à cela : 1009.33 =6 caract numérique + 1 point donc bon ok pour le 7 mais pour le 8

J'aimerai donc avoir vos recommandations sur les points suivants svp. Comment je peux faire pour :

- Enlever les champs avec un point dans ma table

- Enlever les champs commençant par P et H

En vous remerciant d'avance pour votre aide je vous souhaite une excellente soirée !

Tags (1)
1 Solution

Accepted Solutions
kevinchevrier
Contributor III

Re: Flagger une chaine de caractère d'un champ

Tu peux aussi utiliser la fonction replace pour transformer les points et les espaces en rien.

Pour répondre à tes questions :

J'aimerai donc avoir vos recommandations sur les points suivants svp. Comment je peux faire pour :

- Enlever les champs avec un point dans ma table

==> Après ton From : where FindOneOf(TON_CHAMP, '.')=0

==> IF(FindOneOf(TON_CHAMP, '.')=0,TON_CHAMP) as TON_CHAMP_RECALCULE

- Enlever les champs commençant par P et H

==> Après ton From : where  Left(TON_CHAMP, 1) <> 'P' or Left(TON_CHAMP, 1) <> 'H'

==> OU dans un IF : IF(Left(TON_CHAMP, 1) <> 'P' or Left(TON_CHAMP, 1) <> 'H', TON_CHAMP) as TON_CHAMP_RECALCULE


Tout ensemble, ça donne donc :

==> Soit dans une clause where : where FindOneOf(TON_CHAMP, '.')=0 AND (Left(TON_CHAMP, 1) <> 'P' or Left(TON_CHAMP, 1) <> 'H')

==> Soit dans un IF : IF(FindOneOf(TON_CHAMP, '.')=0 AND (Left(TON_CHAMP, 1) <> 'P' or Left(TON_CHAMP, 1) <> 'H', TON_CHAMP)) as TON_CHAMP_RECALCULE

4 Replies
YoussefBelloum
Esteemed Contributor

Re: Flagger une chaine de caractère d'un champ

Salut,

pour purger une chaine de caractere, il y a la fonction PurgeChar

pour enlever les points par exemple:

len(Purgechar(A, '.')) as NBR_CARACT_CHAMP1

kevinchevrier
Contributor III

Re: Flagger une chaine de caractère d'un champ

Tu peux aussi utiliser la fonction replace pour transformer les points et les espaces en rien.

Pour répondre à tes questions :

J'aimerai donc avoir vos recommandations sur les points suivants svp. Comment je peux faire pour :

- Enlever les champs avec un point dans ma table

==> Après ton From : where FindOneOf(TON_CHAMP, '.')=0

==> IF(FindOneOf(TON_CHAMP, '.')=0,TON_CHAMP) as TON_CHAMP_RECALCULE

- Enlever les champs commençant par P et H

==> Après ton From : where  Left(TON_CHAMP, 1) <> 'P' or Left(TON_CHAMP, 1) <> 'H'

==> OU dans un IF : IF(Left(TON_CHAMP, 1) <> 'P' or Left(TON_CHAMP, 1) <> 'H', TON_CHAMP) as TON_CHAMP_RECALCULE


Tout ensemble, ça donne donc :

==> Soit dans une clause where : where FindOneOf(TON_CHAMP, '.')=0 AND (Left(TON_CHAMP, 1) <> 'P' or Left(TON_CHAMP, 1) <> 'H')

==> Soit dans un IF : IF(FindOneOf(TON_CHAMP, '.')=0 AND (Left(TON_CHAMP, 1) <> 'P' or Left(TON_CHAMP, 1) <> 'H', TON_CHAMP)) as TON_CHAMP_RECALCULE

axel_bgd
Contributor II

Re: Flagger une chaine de caractère d'un champ

Bonjour Kevin je te remercie de ta réactivité décidément tu deviendras mon mentor je crois ^^

J'ai effectué tes solutions, j'ai choisi la solution where qui me semble moins pénible que la if ..

Pour la suppression des champs avec un point avec ta solution where FindOneOf(TON_CHAMP, '.')=0 Super ca marche au top je te remercie énormément je connaissais pas du tout celle la je la note ^^

Par la suite pour la suppression des caractère PA et H a sont non fonctionnel je vais travailler dessus ..
Merci encore pour ton aide !

Excellente journée !

axel_bgd
Contributor II

Re: Flagger une chaine de caractère d'un champ

Bonjour Youssef ce n'est pas exactement ce que je souhaite obtenir je te remercie en tout cas pour ta réactivité.

Excellente journée !