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;

 

 

3 RÉPONSES 3
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.

mathieuf
Alteryx
Alteryx

Bonjour @AKHENICHE, peux-tu marquer le sujet comme résolu ?

Merci.

Étiquettes