Bonjour à tous,
mon passé de littéraire me provoque des saignements de nez quand je dois saisir une expression un peu trop complexe pour mon cerveau niveau produits en croix et pourcentages.
Je cherche à faire une expression composée, la première partie fonctionne mais quand j'essaye de rallonger, rien ne va plus...
Expression qui fonctionne: when(tf==1,pac,0)
Je voudrais lui rajouter derrière (tf==2,pac,ep)
En fouillant sur le forum, j'ai trouvé de belles expressions avec des ";"
J'ai testé when(tf==1,pac,0;when(tf==2,pac,ep)) mais ça ne fonctionne pas.
Je voudrais que mon pac varie en fonction de tf.
Merci pour votre aide
Et si vous avez des lectures à me recommander avec des exemples de formules, ça m'intéresse grandement.
Mauvaise syntaxe expression
Modérateurs : remi77, D@vid, Damien F., claire, Alexis GERARD, tibo.v1
-
- Caporal
- Messages : 21
- Enregistré le : 27 mars 2023, 14:11
- Version TopSolid : 6.23
- Module TopSolid : TopSolid'Wood
-
- Lieutenant-colonel
- Messages : 1015
- Enregistré le : 18 oct. 2020, 21:32
- Version TopSolid : 7.13
- Module TopSolid : TopSolid'Steel
- Localisation : Valenciennes
- Contact :
Re: Mauvaise syntaxe expression
La condition When accepte 3 arguments.
Un test qui renvoie vrai ou faux.
L'expression à évaluer si le test est vrai.
L'expression à évaluer si le test est faux.
When( test ; expression si test vrai ; expression si test faux).
La condition When renvoie la valeur de l'expression évaluée.
En premier, il faut définir ce que tu as comme test et les valeurs que tu souhaites récupérer en fonction de ce test.
Dans ton cas, le test à l'air d'être basé sur tf. Maintenant, en fonction de tf, quel est le résultat attendu. Ensuite, tu peux imbriquer les conditions When pour atteindre ton résultat.
Un test qui renvoie vrai ou faux.
L'expression à évaluer si le test est vrai.
L'expression à évaluer si le test est faux.
When( test ; expression si test vrai ; expression si test faux).
La condition When renvoie la valeur de l'expression évaluée.
En premier, il faut définir ce que tu as comme test et les valeurs que tu souhaites récupérer en fonction de ce test.
Dans ton cas, le test à l'air d'être basé sur tf. Maintenant, en fonction de tf, quel est le résultat attendu. Ensuite, tu peux imbriquer les conditions When pour atteindre ton résultat.
- Liks
- Lieutenant-colonel
- Messages : 1198
- Enregistré le : 20 févr. 2015, 12:01
- Version TopSolid : 6.24
- Module TopSolid : TopSolid'Wood
- Localisation : Roanne (France)
- Contact :
Re: Mauvaise syntaxe expression
Gloire à toi !
J'aurai tenté un :
Il te manque un cas pour écrire la fonction juste.
Si tf= 1 ==> renvoie pac
Si tf=2 ==> renvoie pac aussi ?
sinon ==> Renvoie quoi ?
La structure pour enchainer les when est la suivante :
when(test1,REPONSE_SI_VRAI,when(test2,REPONSE_SI_VRAI,REPONSE_SI_FAUX))
Exemple :
paramètre de test : Michel.
Condition : Si Michel = 1 alors je renvoie la paramètre Jeannine
Si Michel = 2 alors je renvoie le paramètre Hubert
Sinon (donc si Michel n'est ni égal à 1 ni à 2), alors je renvoie la valeur 42 (ben ouais la base )
==> when(Michel==1,Jeannine, when(Michel==2,Hubert,42))
Qui se lit :
Si Michel = 1 alors renvoyer Jeannine, sinon si Michel = 2 alors renvoyer Hubert, sinon renvoyer 42
J'espère que je suis à peu près clair.
(Jette un oeil à la vidéo : https://www.youtube.com/watch?v=8xcxbS4ddes si ça peut t'aider peut-être
J'aurai tenté un :
Il te manque un cas pour écrire la fonction juste.
Si tf= 1 ==> renvoie pac
Si tf=2 ==> renvoie pac aussi ?
sinon ==> Renvoie quoi ?
La structure pour enchainer les when est la suivante :
when(test1,REPONSE_SI_VRAI,when(test2,REPONSE_SI_VRAI,REPONSE_SI_FAUX))
Exemple :
paramètre de test : Michel.
Condition : Si Michel = 1 alors je renvoie la paramètre Jeannine
Si Michel = 2 alors je renvoie le paramètre Hubert
Sinon (donc si Michel n'est ni égal à 1 ni à 2), alors je renvoie la valeur 42 (ben ouais la base )
==> when(Michel==1,Jeannine, when(Michel==2,Hubert,42))
Qui se lit :
Si Michel = 1 alors renvoyer Jeannine, sinon si Michel = 2 alors renvoyer Hubert, sinon renvoyer 42
J'espère que je suis à peu près clair.
(Jette un oeil à la vidéo : https://www.youtube.com/watch?v=8xcxbS4ddes si ça peut t'aider peut-être
Retrouvez-nous sur notre chaine YouTube autour de TopSolid https://www.youtube.com/@ideo.solutions
Découvrez notre site internet : https://www.ideo-solutions.com
Et pour ensavoir plus, notre LinkTree https://linktr.ee/Ideosolutions
Liks.
Découvrez notre site internet : https://www.ideo-solutions.com
Et pour ensavoir plus, notre LinkTree https://linktr.ee/Ideosolutions
Liks.
-
- Lieutenant-colonel
- Messages : 1015
- Enregistré le : 18 oct. 2020, 21:32
- Version TopSolid : 7.13
- Module TopSolid : TopSolid'Steel
- Localisation : Valenciennes
- Contact :
Re: Mauvaise syntaxe expression
J'adore cette exemple et sa réponse ultime 42
- Damien F.
- Modérateur
- Messages : 2109
- Enregistré le : 09 avr. 2010, 13:26
- Version TopSolid : 6.22
- Module TopSolid : TopSolid'Wood
- Localisation : Marseille
- Contact :
Re: Mauvaise syntaxe expression
le 42 m'a tué. La réponse à tout du grand Guide.
-
- Caporal
- Messages : 21
- Enregistré le : 27 mars 2023, 14:11
- Version TopSolid : 6.23
- Module TopSolid : TopSolid'Wood
Re: Mauvaise syntaxe expression
Merci pour vos réponses,
Je vais potasser ça lundi. J'étais trop impatiente de lire, je me mets un peu dans le bain avant...
Je vais potasser ça lundi. J'étais trop impatiente de lire, je me mets un peu dans le bain avant...