<< Back

Questions pour un outil – Réponses et explications #40

Voici les réponses aux deux questions « Questions pour un outil » de la semaine du 18 au 24 octobre 2021.

Vous pouvez toujours y participer sur LinkedIn ou la communauté :

La question du mardi était :

En comparant le jeu de données et le résultat on constate ceci :

  • Le champ Nouveau est utilisé pour remplacer les occurrences du champ Ancien
  • Toutes les occurrences sont remplacées

Commençons par la partie simple de la configuration : les champs. Il faut définir le champ à modifier, celui utilisé pour identifier les valeurs et celui contenant les valeurs de remplacement.

Pour le champ à modifier, c’est simple, il n’y en a qu’un dans la première entrée : Mail. Étant donné qu’il est le seul, il est automatiquement choisi dans l’option Rechercher au sein du champ.

Ensuite, parmi les deux champs de la deuxième entrée, il faut utiliser Ancien comme champ d’identification dans l’option Rechercher une valeur et Nouveau comme champ de remplacement dans l’option Remplacer le texte trouvé par une valeur.

Ensuite, il faut choisir de quelle façon la recherche s’effectue parmi les options Début du champ, Une partie du champ et Tout le champ. Ici, les valeurs peuvent se trouver au milieu de la chaîne de caractères, il faut donc choisir la deuxième option.

Puis, en prenant l’exemple du mot « point », on voit que la recherche n’est pas sensible à la casse. En effet, nous avons la valeur « point », en minuscules, et la valeur « Point » avec une majuscule. Cependant, les deux sont remplacées. Il faut donc cocher l’option Recherche insensible à la casse.

Enfin, bien que nous ayons coché l’option Une partie du champ, l’outil, par défaut, ne remplace que la première occurence. Il faut donc cocher l’option Remplacer plusieurs éléments trouvés pour que toutes les occurrences soient remplacées.

La configuration finale est celle-ci :

Voici la documentation de l’outil pour plus d’informations : https://help.alteryx.com/fr/current/designer/find-replace-tool

La question du jeudi était :

En comparant le jeu de données et le résultat on constate ceci :

  • Les caractères en début et fin de chaîne de la colonne Article ont été supprimés
  • Une nouvelle colonne Total a été créée

Pour le premier point, nous souhaitons modifier le champ existant Article, pas en créer un nouveau. Il faut donc sélectionner le champ Article.

Ensuite, on veut supprimer le caractère « $ » en début de chaîne et le caractère « . » en fin de chaîne. Pour supprimer les caractères en bout de chaîne, on peut utiliser les fonctions suivantes : Trim(), TrimLeft() et TrimRight().

Comme nous avons un caractère à gauche et un caractère à droite, il est tentant de vouloir utiliser une fois la fonction TrimLeft() et une fois la fonction TrimRight(). Cependant, la fonction Trim() traite le début et la fin de la chaîne, et retire les caractères spécifiés à chaque bout. Nous pouvons donc l’utiliser comme ceci :

Trim([Article], "$.")

Ensuite, la colonne Total n’existant pas dans le jeu de données en entrée, il faut la créer. En observant les données, on peut déduire que la colonne Total est la multiplication entre les valeurs de la colonne Quantité et de la colonne Montant. Il suffit donc d’écrire l’expression suivante :

[Quantité] * [Montant]

C’était trop simple n’est-ce pas ? Effectivement, on obtient une erreur avec cette expression car la colonne Montant n’est pas numérique. C’est une chaîne de caractères, sinon nous n’aurions pas le caractère « € ». Il faut donc transformer ce champ en numérique pour pouvoir faire le calcul. Pour ce faire, il suffit d’utiliser la fonction ToNumber(). Et nous allons l’utiliser directement dans le calcul, de cette manière :

[Quantité] * ToNumber([Montant])

Mais ce n’est pas encore fini. Pour faire les choses proprement et éviter ces erreurs de conversion que vous obtenez, dues a la partie  » € » qui est forcée à disparaitre et est donc considérée comme une perte d’information, nous allons utiliser la fonction TrimRight() pour la supprimer avant de convertir. Le calcul final est donc celui-ci :

[Quantité] * ToNumber(TrimRight([Montant], " €"))

La configuration finale est celle-ci :

Voici la documentation de l’outil pour plus d’informations : https://help.alteryx.com/fr/current/designer/formula-tool

C’est tout pour cette semaine ! Rendez-vous la semaine prochaine pour deux nouvelles questions ! 🙂

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *