Réservez votre place pour le Paris User Group (en présentiel ! ) qui aura lieu mercredi 17 Novembre à 18h30 !

Free Trial

Blog - Français

Les analyses et les idées des plus grands esprits de l'analyse.
TIPS de la semaine

Chaque semaine, découvrez de nouvelles astuces et bonnes pratiques pour devenir un expert !

Voir l'index
messi007
Pulsar

 

1200x600-dynamicreplace.png

 

L’outil « Remplacement Dynamique » (« Dynamic Replace » en anglais) est un des outils les plus puissants d’Alteryx. Rarement mis en avant, il permet pourtant de faire des merveilles lorsque l’on a beaucoup de règles de gestion à appliquer à un jeu de données.

 

Il permet de remplacer rapidement des valeurs de données dans une série de champs à partir d’une condition. Le remplacement des données peut être basé sur des règles de gestion (des formules) ou des valeurs statiques.

L’outil se trouve dans l’onglet développeur :

 

messi007_0-1620668461154.png

 

 

messi007_26-1620671525285.png

 

1. Appliquer une condition dynamiquement

 

Je souhaite créer un champ « Résultat » et y appliquer le calcul suivant :

 

 

SI A < = B, alors « A inférieur ou égal à B »

SINON, alors « A supérieur à B »

 

 

Je peux très bien faire ça tranquillement avec une formule, correct ?

messi007_1-1620668563009.png

Oui bien sûr. Fin de l’histoire ? Pas si vite.

Imaginons que les règles de calcul soient un peu plus complexes.

 

SI A < = B, alors « A inférieur ou égal à B »

SINON, SI A > B ET B < 2, alors « A supérieur à B et B inférieur à 2 »

SINON, SI A > B ET B < 5, alors « A supérieur à B et B inférieur à 5 »

SINON, SI A > B ET B < 10, alors « A supérieur à B et B inférieur à 10 »

SINON, « A supérieur à B et B supérieur ou égal à 10 »

 

 

Toujours pareil, je peux faire ça avec un outil « Formule ». Pourquoi aller chercher plus compliquer ?

messi007_2-1620668658063.png

Oui d’accord. Mais si ces règles changent dynamiquement de manière imprévisible ? Est-ce que je vais modifier ma formule à chaque fois ? Et s’il n’y a pas 5 conditions mais 500 ?

C’est là ou l’outil « Remplacement Dynamique » devient intéressant et on va le dire franchement : incroyablement pratique. Il est quand même assez complexe de prime abord. Son utilité ne saute pas aux yeux, comme on vient le voir. Et sa configuration peut porter à confusion. Clairement, sans explication, je pense que personne ne pourrait le configurer correctement du 1er coup 😊.

 

Donc voyons à quoi ressemblerait notre 1er exemple, pour rappel :

 

 

SI A < = B, alors « A inférieur ou égal à B »

SINON, alors « A supérieur à B »

 

 

messi007_3-1620668741986.png

Voici l’explication des options de l’outil Dynamic Replace :

  • Champ de nom du champ : le nom de la colonne que l’on souhaite avoir en résultat (la colonne « Résultat » dans notre exemple)
  • Champ d’expression booléenne : la colonne de test (la colonne « Expression » dans notre exemple)
  • Champ de valeur de sortie : le contenu que l’on souhaite avoir dans la colonne renseignée dans l’option « Champ de nom du champ »
  • Les valeurs sont des expressions/formules : à cocher si le contenu du « Champ de valeur de sortie » est une formule. Sinon, laisser décocher.

 

messi007_4-1620668818112.png

 

Effectivement, un peu compliqué pour une simple condition. Maintenant, voyons à quoi ressemblerait notre workflow dans notre 2ème exemple, pour rappel :

 

SI A < = B, alors « A inférieur ou égal à B »

SINON, SI A > B ET B < 2, alors « A supérieur à B et B inférieur à 2 »

SINON, SI A > B ET B < 5, alors « A supérieur à B et B inférieur à 5 »

SINON, SI A > B ET B < 10, alors « A supérieur à B et B inférieur à 10 »

SINON, « A supérieur à B et B supérieur ou égal à 10 »

 

 

messi007_5-1620668887321.png

Et oui, nos règles ont changé mais pas l’outil « Remplacement Dynamique ».

Dans notre exemple nous sommes en train d’utiliser l’outil entrée de texte, mais imaginons que nous avons un fichier Excel avec l’ensemble des conditions et avec ça nous pouvons donner la main aux analystes pour ajouter ou modifier les formules au niveau du fichier et non au niveau du workflow.  

 

messi007_6-1620668958292.png

 

 

 

 

 

 

 

 

 

 

 

2. Faire des calculs dynamiques entre colonnes avec une règle de gestion

 

Maintenant nous souhaitons faire un calcul :

 

SI [A]<=[B]

ALORS [A]*[B]

SI [A]>[B]

ALORS [A]/[B]

 

  1. Adapter notre fichier de test par la modification de ma colonne Valeur avec les formules
  2. Mettre à jour l’outil Remplacement dynamique en cochant l’option « Les valeurs sont des expressions/formules »

messi007_9-1620669587143.png

messi007_11-1620669755161.png

 

 

3. Faire des calculs sans règle de gestion

 

Dans l’exemple 2 nous avons une condition et une formule pour chaque ligne et si nous souhaitons faire une formule pour chaque ligne sans condition :

messi007_12-1620669854788.png

 

 

 

 

 

 

 

 

 

Nous allons adapter notre workflow afin de lire une seule entrée de données

messi007_13-1620669893430.png

Nous pouvons constater qu’Alteryx a appliqué la première formule pour toutes les lignes.

 

messi007_14-1620669960574.png

 

C’est parce que notre colonne de test est toujours vraie.

Pour résoudre le problème nous allons faire des modifications sur notre précédent workflow.

Ci-dessous les étapes à mettre en place :

 

1. Ajouter un filtre sur la colonne résultat

messi007_15-1620670036437.png

 

 

 

 

 

 

 

 

 

 

 

2. Ajouter un paramètre de contrôle afin de mettre à jour le filtre à chaque fois que nous avons une formule différente

messi007_16-1620670096260.png

 

 

 

 

 

 

 

 

 

 

3. Convertir les explorateurs à la fin de mon workflow en sortie de macro

messi007_17-1620670149127.png

 

 

 

 

 

 

 

 

 

 

 

4. Voici notre macro

 

messi007_18-1620670214508.png

 

 

 

 

 

 

 

 

 

 

5. Maintenant nous allons ajouter une icône à notre macro

a. Pour ce faire nous allons cocher « Afficher concepteur d’interface » dans l’onglet Affichermessi007_19-1620670331678.png

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b. Ensuite nous allons cliquer sur « Propriété »

messi007_20-1620670378263.png

 

 

 

 

 

 

 

 

 

 

c. Puis nous allons choisir une icône à partir de la liste déroulante

messi007_21-1620670443319.png

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

d. Une fois que c’est terminé, nous allons enregistrer notre macro avec le nom « Remplacement Dynamique »

 

6. Maintenant nous allons créer un workflow vierge et nous allons ajouter notre source de données

 

messi007_22-1620670561535.png

 

 

 

 

 

 

 

 

7. Insérons maintenant notre Macro Batch

messi007_23-1620670601150.png

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8. Nous allons faire le lien entre notre paramètre de contrôle et notre colonne résultat pour la mise à jour du filtre à l’intérieur de la macro

messi007_24-1620670657608.png

9. Nous allons faire le lien avec l’entrée en bas du contrôle afin d’alimenter la macro avec les données et nous allons ajouter deux explorateurs afin de voir le résultat

messi007_25-1620670716937.png

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Vous trouvez ci-joint les exemples que nous avons utilisés 🙂

 

N'hésitez pas à partager vos commentaires ci-dessous. Je serai très reconnaissant pour toutes les idées et suggestions qui permettront aux lecteurs de comprendre la puissance de l'outil « Remplacement Dynamique ».

 

Merci d'avoir lu et bonne analyse 🙂

Commentaires
mouna_belaid
Météore

Je te remercie pour ce partage. Des explications assez claires concernant un sujet super intéressant 🙂

TL69
Atome
Merci Mokhtar pour le partage de cette technique avancée que seuls les experts connaissent. Très utile dans beaucoup de situations !
StephaneP
Alteryx
Alteryx

Superbe article @messi007 !!
Bravo !

Trés clair et didactique.

 

C'est vrai que cet outil est peu connu mais tellement puissant pour rendre ses traitements dynamiques.

Merci pour lui... et pour nous 😁

BenoitC
Alteryx
Alteryx

Super article ! Très clair, merci pour cette contribution 

StephaneP
Alteryx
Alteryx

Tu sens les avant ventes qui se refilent les bons plans entre eux.. 😁

Étiquettes