Free Trial

Forum

Trouvez des réponses, posez des questions, et partagez votre expertise d’Alteryx.
TIPS de la semaine

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

Voir l'index

Formule conditionnelle imbriquée

AKHENICHE
Météore

Bonjour à tous, 

 

Je souhaite traduire en Altéryx le bout de programme SAS ci-dessous


data FT_ARC_5 ;

set FT_ARC_4 ;

if Point_DRC='OUI' then do ;

if Score_du_point_de_contr_le=0 then DRC_NonConf=1 ;

else if Score_du_point_de_contr_le=1 then DRC_NonConf=0 ;

end ;

run ;

 

Mon besoin est le suivant :

  • Condition principale : Vérifie si la colonne "Point DRC" est égal à "OUI".
  • Condition imbriquée :
    • Si la colonne "score du point" est = 0, retourne 1.
    • Si la colonne "score du point" est =1, retourne 0.
    • Sinon, retourne " " 

 

J'ai testé en créant une nouvelle colonne avec la formule suivante  : 

 

IF [Point DRC] = "OUI" THEN
IF [Score du point de contrôle] = "0" THEN
"1 "
ELSEIF [Score du point de contrôle] = "1" THEN
"0"
ELSE
""
ENDIF

 

Malheureusement, j'ai un message qui m'indique que "l'instruction IF est incorrectement formée".

 

Quelqu'un sait il me dire ce qu'il convient de modifier ? Ou y a t-il une autre solution ?

Merci d'avance;

 

 

2 RÉPONSES 2
mathieuf
Alteryx
Alteryx

Bonjour @AKHENICHE, bienvenue dans l'univers Alteryx !

 

iil doit te manquer un ENDIF pour fermer ton IF imbriqué.

 

Tu peux aussi faire comme ça :

 

IF [Point DRC] = 'OUI' AND [Score du point de contrôle] = '0'
THEN '1'
ELSEIF [Point DRC] = 'OUI' AND [Score du point de contrôle] = '1'
THEN '0'
ELSE ''
ENDIF

 

Je te partage mon workflow en pièce jointe.

Excellent reflexe de venir sur la communauté !

AKHENICHE
Météore

Bonjour, 

Je vous remercie pour ce retour.

J'ai testé cette méthode mais elle n'a pas fonctionnée.

Il y avait peut être un souci au niveau de type de données défini au niveau de mes colonnes.

 

J'ai donc testé une autre solution qui m'a été communiquée et celle-ci a fonctionnée.

Si cela peut aider quelqu'un d'autre, je vous joins la solution ci-dessous : 

 

IF [Point DRC] = "OUI" THEN
IF [Score point de contrôle] = 0 THEN
1
ELSEIF [Score point de contrôle] = 1 THEN
0
ELSE
NULL() // ou une valeur par défaut
ENDIF
ELSE
NULL() // ou une autre valeur par défaut
ENDIF

 

Bonne journée et encore merci.

Étiquettes