Besoin d'aide pour des if imbriqué
jose7896
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
jose7896 Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
jose7896 Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je voudrai faire un if imbriqué qui resemblerai à ça :
IF([@Etat]="Planifié";IF([@[K ZZR Last Assigned Date]]=""; IF([@[K O Appointment Date]]<(TODAY()-8); "défaut"; "ok"); IF([@[K ZZR Last Assigned Date]]<(TODAY()-8); "défaut"; "ok");if([@[K ZZR Last Assigned Date]]<([@[K O Appointment Date]];IF([@[K O Appointment Date]]<(TODAY()-8); "défaut"; "ok");if([@[K ZZR Last Assigned Date]]<([@[K O Appointment Date]];IF([@[K O Appointment Date]]<(TODAY()-8); "défaut"; "ok"))))));"ok";)
je pense que j'ai un probleme organisation des if.
merci
je voudrai faire un if imbriqué qui resemblerai à ça :
IF([@Etat]="Planifié";IF([@[K ZZR Last Assigned Date]]=""; IF([@[K O Appointment Date]]<(TODAY()-8); "défaut"; "ok"); IF([@[K ZZR Last Assigned Date]]<(TODAY()-8); "défaut"; "ok");if([@[K ZZR Last Assigned Date]]<([@[K O Appointment Date]];IF([@[K O Appointment Date]]<(TODAY()-8); "défaut"; "ok");if([@[K ZZR Last Assigned Date]]<([@[K O Appointment Date]];IF([@[K O Appointment Date]]<(TODAY()-8); "défaut"; "ok"))))));"ok";)
je pense que j'ai un probleme organisation des if.
merci
A voir également:
- Besoin d'aide pour des if imbriqué
- If exist - Forum Java
- The realtek network controller was not found. if deep sleep mode is enabled please plug the cable ✓ - Forum Pilotes (drivers)
- Formule excel si est vide imbriqué - Forum Excel
- If char ✓ - Forum Programmation
- Formule imbriquée SI, ET, ESTVIDE ✓ - Forum Excel
4 réponses
Bonjour
Dejà, éclaircir le code permet d'un coup d'un seul d'y voir plus clair.
Là, on frôle l'obfuscation ^^
J'y regarde et je te dis si je trouve quelque facteur commun pour réduire le tout.
N'hésite pas à prévenir si tu te rends compte que la condition booléenne que tu nous as livrée est erronée, puisqu'on se base dessus pour te répondre ^^
Les 3 plus grands mensonges du dev :
1. La doc ? On la fera plus tard... 2. Le programme a été testé et ne comporte aucun bug... 3. Les spécifications techniques sont finies...
Dejà, éclaircir le code permet d'un coup d'un seul d'y voir plus clair.
Là, on frôle l'obfuscation ^^
IF( [@Etat]="Planifié"; IF( [@[K ZZR Last Assigned Date]]=""; IF( [@[K O Appointment Date]]<(TODAY()-8); "défaut"; "ok" ); IF( [@[K ZZR Last Assigned Date]]<(TODAY()-8); "défaut"; "ok" ); IF( [@[K ZZR Last Assigned Date]]<( [@[K O Appointment Date]]; IF( [@[K O Appointment Date]]<(TODAY()-8); "défaut"; "ok" ); IF( [@[K ZZR Last Assigned Date]]<( [@[K O Appointment Date]]; IF( [@[K O Appointment Date]]<(TODAY()-8); "défaut"; "ok" ) ) ) ) ) ); "ok"; )
J'y regarde et je te dis si je trouve quelque facteur commun pour réduire le tout.
N'hésite pas à prévenir si tu te rends compte que la condition booléenne que tu nous as livrée est erronée, puisqu'on se base dessus pour te répondre ^^
Les 3 plus grands mensonges du dev :
1. La doc ? On la fera plus tard... 2. Le programme a été testé et ne comporte aucun bug... 3. Les spécifications techniques sont finies...
Merci de votre réponse. en effet bonne idée d'éclaircir le code. la condition est bonne. c'est vraiment la syntaxe qui me pose probleme.
Alors en fait j'ai du mal à comprendre ce que vous avez fait.
J'essaie des choses, mais visiblement ça ne va toujours pas.
La deuxième condition IF (ligne 3) ne marchera pas puisqu'elle a 4 paramètres (dont 3 sont des conditions if imbriquées).
Il ne lui en faut que 3 maxi. Et ce "léger détail" est présent dès le départ....
Essayez de commenter votre code. De dire ce que vous comptez faire.
Là... j'ai juste identifié du code en doublon, c'est tout ^^
J'essaie des choses, mais visiblement ça ne va toujours pas.
IF( [@Etat]="Planifié"; IF( [@[K ZZR Last Assigned Date]]=""; IF( [@[K O Appointment Date]]<(TODAY()-8); "défaut"; "ok" ); IF( [@[K ZZR Last Assigned Date]]<(TODAY()-8); "défaut"; "ok" ); IF( (([@[K ZZR Last Assigned Date]] < [@[K O Appointment Date]]) AND [@[K O Appointment Date]]<(TODAY()-8)); "défaut"; "ok" ); ); "ok"; )
La deuxième condition IF (ligne 3) ne marchera pas puisqu'elle a 4 paramètres (dont 3 sont des conditions if imbriquées).
Il ne lui en faut que 3 maxi. Et ce "léger détail" est présent dès le départ....
Essayez de commenter votre code. De dire ce que vous comptez faire.
Là... j'ai juste identifié du code en doublon, c'est tout ^^
IF(
[@Etat]="Planifié"; // si état = planifié
IF(
[@[K ZZR Last Assigned Date]]=""; // si last assigned date est vide
IF(
[@[K O Appointment Date]]<(TODAY()-8); // si ko apointemnt date est inferieur à today - 8
"défaut"; // afficher defaut
"ok" // sinon afficher ok
);
IF(
[@[K ZZR Last Assigned Date]]<(TODAY()-8);
"défaut";
"ok"
);
IF(
(([@[K ZZR Last Assigned Date]] < [@[K O Appointment Date]]) // si last assigned date est inferieur à appointement date
AND [@[K O Appointment Date]]<(TODAY()-8));
"défaut";
"ok"
);
);
"ok";
)
[@Etat]="Planifié"; // si état = planifié
IF(
[@[K ZZR Last Assigned Date]]=""; // si last assigned date est vide
IF(
[@[K O Appointment Date]]<(TODAY()-8); // si ko apointemnt date est inferieur à today - 8
"défaut"; // afficher defaut
"ok" // sinon afficher ok
);
IF(
[@[K ZZR Last Assigned Date]]<(TODAY()-8);
"défaut";
"ok"
);
IF(
(([@[K ZZR Last Assigned Date]] < [@[K O Appointment Date]]) // si last assigned date est inferieur à appointement date
AND [@[K O Appointment Date]]<(TODAY()-8));
"défaut";
"ok"
);
);
"ok";
)
Ok.
Alors essayez ça :
J'ai un peu édité mon post après l'avoir posté... n'hésitez pas à rafraîchir la page
Alors essayez ça :
IF( [@Etat]="Planifié"; // si état = planifié // si last assigned date est vide IF( [@[K ZZR Last Assigned Date]]=""; // si ko apointemnt date est inferieur à today - 8 IF( [@[K O Appointment Date]]<(TODAY()-8); IF( [@[K ZZR Last Assigned Date]]<(TODAY()-8); // si last assigned date < à appointement date IF( ( ([@[K ZZR Last Assigned Date]] < [@[K O Appointment Date]] ) AND [@[K O Appointment Date]]<(TODAY()-8)); "défaut"; "ok" ); // Faudrait peut-être mettre un "ok"; ici, à voir avec // les tests unitaires... ); "ok" ); "ok" // sinon afficher ok ); "ok"; )
J'ai un peu édité mon post après l'avoir posté... n'hésitez pas à rafraîchir la page