Re: [users-fr] Re: Calc Formule complexe
Bonjour, Christianwtd a écrit : Jean Sympa a écrit : Calc Formule complexe Bonjour à toutes et à tous, - Je voudrais programmer cette formule SI ((G11= ''A'' ) And ( G19>G23)) Alors (G21-G24) Sinon -(G21-G24) Or SI ((G11= ''V'' )And ( G19>G23)) Alors -(G21-G24) Sinon (G21-G24) Est-ce possible? Si non pourquoi? - Je commence par tester, sans succès, la première condition . SI ((G11= ''A'' ) And ( G19>G23)) Alors (G21-G24) Sinon -(G21-G24) Pourquoi y a-t-il une erreur? Avec mes remerciements Cordialement Papy Bonjour Jean, Juste pour le plaisir de pas faire comme tout le monde, =OU((G11="A"); (G11="V")) * (G19>G23) * (G21-G24) C'est plus simple une fois que tu as pigé le principe de base. C'est quoi le "principe de base" ;-) Bon surf, Christian Francois - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [users-fr] Re: Calc Formule complexe
Christianwtd a écrit : [EMAIL PROTECTED] a écrit : Bonjour Jean, Juste pour le plaisir de pas faire comme tout le monde, =OU((G11="A"); (G11="V")) * (G19>G23) * (G21-G24) C'est plus simple une fois que tu as pigé le principe de base. C'est quoi le "principe de base" ;-) On teste si c'est VRAI ou FAUX. Quand j'écris (G11="A") dans une cellule on devrait écrire : =G11="A" qui retourne VRAI ou FAUX suivant cas, et quand on sait que VRAI est identique à la valeur 1 et FAUX identique à la valeur 0 (tu peux faire le test en appliquant le format numérique sur une cellule qui contient VRAI ou FAUX), ton résultat final (G21-G24) est multiplié par 0, donc pas grand chose au final... ou multiplié par 1, ce qui donne le reflet du résultat. Je pense connaitre les opérateurs booléens et leurs équivalents, sauf que dans la demande de Jean (Sympa) : SI ((G11= ''A'' ) ET ( G19>G23)) Alors (G21-G24) Sinon -(G21-G24) OU SI ((G11= ''V'' ) ET ( G19>G23)) Alors -(G21-G24) Sinon (G21-G24) il me semble que ta formulation n'apporte pas la solution exacte. A moins que quelque chose ne m'ait échappé. Francois Bon surf, Christian Francois - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [users-fr] Re: Calc Formule complexe
Merci Christian, Dans : =OU((G11="A"); (G11="V")) * (G19>G23) * (G21-G24) OU ((G11="A"); (G11="V")) peut s'écrire ((G11="A"); (G11="V"))OU((G11="A"); (G11="V")) Dans tous les cas, seul un terme est vrai. Je ne comprends pas ce que fait le symbole * de la multiplication, autrement dit la seconde partie de la formule n'est pas claire pour moi. Cordialement Papy [EMAIL PROTECTED] a écrit : Christianwtd a écrit : [EMAIL PROTECTED] a écrit : Bonjour Jean, Juste pour le plaisir de pas faire comme tout le monde, =OU((G11="A"); (G11="V")) * (G19>G23) * (G21-G24) C'est plus simple une fois que tu as pigé le principe de base. C'est quoi le "principe de base" ;-) On teste si c'est VRAI ou FAUX. Quand j'écris (G11="A") dans une cellule on devrait écrire : =G11="A" qui retourne VRAI ou FAUX suivant cas, et quand on sait que VRAI est identique à la valeur 1 et FAUX identique à la valeur 0 (tu peux faire le test en appliquant le format numérique sur une cellule qui contient VRAI ou FAUX), ton résultat final (G21-G24) est multiplié par 0, donc pas grand chose au final... ou multiplié par 1, ce qui donne le reflet du résultat. Je pense connaitre les opérateurs booléens et leurs équivalents, sauf que dans la demande de Jean (Sympa) : SI ((G11= ''A'' ) ET ( G19>G23)) Alors (G21-G24) Sinon -(G21-G24) OU SI ((G11= ''V'' ) ET ( G19>G23)) Alors -(G21-G24) Sinon (G21-G24) il me semble que ta formulation n'apporte pas la solution exacte. A moins que quelque chose ne m'ait échappé. Francois Bon surf, Christian Francois - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [users-fr] Re: Calc Formule complexe
[EMAIL PROTECTED] a écrit : Christianwtd a écrit : [EMAIL PROTECTED] a écrit : Je pense connaitre les opérateurs booléens et leurs équivalents, sauf que dans la demande de Jean (Sympa) : SI ((G11= ''A'' ) ET ( G19>G23)) Alors (G21-G24) Sinon -(G21-G24) OU SI ((G11= ''V'' ) ET ( G19>G23)) Alors -(G21-G24) Sinon (G21-G24) il me semble que ta formulation n'apporte pas la solution exacte. A moins que quelque chose ne m'ait échappé. Francois T'as raison, j'avais raté le signe - et ça complique un peu : =((G11="A")* (G19>G23) * -(G21-G24)) + ((G11="V")* (G19>G23) * (G21-G24)) Bon surf, Christian Francois Bon surf, Christian -- Visitez http://christianwtd.free.fr/ pour débuter avec Calc, d'OpenOffice.org - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [users-fr] Re: Calc Formule complexe
Bonsoir Christian, christianwtd a écrit : [EMAIL PROTECTED] a écrit : Christianwtd a écrit : [EMAIL PROTECTED] a écrit : Je pense connaitre les opérateurs booléens et leurs équivalents, sauf que dans la demande de Jean (Sympa) : SI ((G11= ''A'' ) ET ( G19>G23)) Alors (G21-G24) Sinon -(G21-G24) OU SI ((G11= ''V'' ) ET ( G19>G23)) Alors -(G21-G24) Sinon (G21-G24) il me semble que ta formulation n'apporte pas la solution exacte. A moins que quelque chose ne m'ait échappé. Francois T'as raison, j'avais raté le signe - et ça complique un peu : Un petit peu ;-) =((G11="A")* (G19>G23) * -(G21-G24)) + ((G11="V")* (G19>G23) * (G21-G24)) Si l'on respecte l'expression du besoin de Jean, je pense que tu dois écrire : =((G11="A")*(G19>G23)*(G21-G24))+((G11="V")*(G19>G23)*-(G21-G24)) Sinon, et présenté de manière plus "classique" ... et sans doute plus compréhensible et maintenable pour la plupart, voici quelques variantes revue et corrigées: --- =SI(G11="A";SI(G19>G23;G21-G24;-(G21-G24));SI(G11="V";SI(G19>G23;-(G21-G24);G21-G24);"ERREUR")) --- =SI(G19>G23;(SI(G11="A";G21-G24;(SI (G11="V";-(G21-G24);"";"") proposée par Jacques Le Moignic --- =SI(G19>G23;SI(G11="A";G21-G24;SI(G11="V";-(G21-G24);""));SI(G11="A";-(G21-G24);SI(G11="V";(G21-G24);""))) proposée par PREF31 Bon surf, Christian Francois - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: [users-fr] Re: Calc Formule complexe
Désolée, mais dans le cas des formules =SI(G19>G23;(SI(G11="A";G21-G24;(SI (G11="V";-(G21-G24);"";"") ou =((G11="A")*(G19>G23)*(G21-G24))+((G11="V")*(G19>G23)*-(G21-G24)) lorsque G19 est inférieur ou égal à G23 dans le premier cas on a une cellule vide, dans l'autre le résultat est 0 il faudrait donc dans le premier cas =SI(G19>G23;(SI(G11="A";G21-G24;(SI (G11="V";-(G21-G24);"";(SI(G11="A";-(G21-G24);(SI (G11="V";(G21-G24);"") dans le second =((G11="A")*(G19>G23)*(G21-G24))+((G11="A")*(G19<=G23)*-(G21-G24))+((G11="V" )*(G19>G23)*-(G21-G24))+((G11="V")*(G19<=G23)*(G21-G24)) -Message d'origine- De : [EMAIL PROTECTED] org [mailto:[EMAIL PROTECTED] noffice.org]De la part de [EMAIL PROTECTED] Envoyé : lundi 21 janvier 2008 17:46 À : users@fr.openoffice.org Objet : Re: [users-fr] Re: Calc Formule complexe Bonsoir Christian, christianwtd a écrit : > [EMAIL PROTECTED] a écrit : >> Christianwtd a écrit : >>> [EMAIL PROTECTED] a écrit : >>> >>> >> Je pense connaitre les opérateurs booléens et leurs équivalents, sauf >> que dans la demande de Jean (Sympa) : >> >> SI ((G11= ''A'' ) ET ( G19>G23)) Alors (G21-G24) Sinon -(G21-G24) >> OU >> SI ((G11= ''V'' ) ET ( G19>G23)) Alors -(G21-G24) Sinon (G21-G24) >> >> il me semble que ta formulation n'apporte pas la solution exacte. >> >> A moins que quelque chose ne m'ait échappé. >> >>>>> >>>> Francois >>> > T'as raison, j'avais raté le signe - et ça complique un peu : Un petit peu ;-) > =((G11="A")* (G19>G23) * -(G21-G24)) + ((G11="V")* (G19>G23) * (G21-G24)) Si l'on respecte l'expression du besoin de Jean, je pense que tu dois écrire : =((G11="A")*(G19>G23)*(G21-G24))+((G11="V")*(G19>G23)*-(G21-G24)) Sinon, et présenté de manière plus "classique" ... et sans doute plus compréhensible et maintenable pour la plupart, voici quelques variantes revue et corrigées: --- =SI(G11="A";SI(G19>G23;G21-G24;-(G21-G24));SI(G11="V";SI(G19>G23;-(G21-G24); G21-G24);"ERREUR")) --- =SI(G19>G23;(SI(G11="A";G21-G24;(SI (G11="V";-(G21-G24);"";"") proposée par Jacques Le Moignic --- =SI(G19>G23;SI(G11="A";G21-G24;SI(G11="V";-(G21-G24);""));SI(G11="A";-(G21-G 24);SI(G11="V";(G21-G24);""))) proposée par PREF31 > > >>> >>> Bon surf, >>> Christian >>> Francois - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [users-fr] Re: Calc Formule complexe
Bonsoir PREF31, PREF31 Open-Office a écrit : Désolée, Oups ! Moiz aussi :-! mais dans le cas des formules =SI(G19>G23;(SI(G11="A";G21-G24;(SI (G11="V";-(G21-G24);"";"") ou =((G11="A")*(G19>G23)*(G21-G24))+((G11="V")*(G19>G23)*-(G21-G24)) lorsque G19 est inférieur ou égal à G23 dans le premier cas on a une cellule vide, dans l'autre le résultat est 0 il faudrait donc dans le premier cas =SI(G19>G23;(SI(G11="A";G21-G24;(SI (G11="V";-(G21-G24);"";(SI(G11="A";-(G21-G24);(SI (G11="V";(G21-G24);"") dans le second =((G11="A")*(G19>G23)*(G21-G24))+((G11="A")*(G19<=G23)*-(G21-G24))+((G11="V" )*(G19>G23)*-(G21-G24))+((G11="V")*(G19<=G23)*(G21-G24)) Effectivement ! Moralité, c'est quand même mieux de rédiger avec les opérateurs logiques SI ET OU qui offrent une lisibilité plus grande donc une maintenance plus aisée et évitent le genre de noeuds que l'on peut avoir avec d'autres formulations. Merci pour ce corrigé ... et amitiés aux Toulousains ;-) Francois - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [users-fr] Re: Calc Formule complexe
Bonsoir à toutes et à tous, Je ne suis pas sorti du tunnel. J'utilise une des fonctions que vous m'avez proposée. Elle me semble juste mais, son résultat est faux. Où est l'erreur? Avec mes remerciements Cordialement Papy [EMAIL PROTECTED] a écrit : Bonsoir PREF31, PREF31 Open-Office a écrit : Désolée, Oups ! Moiz aussi :-! mais dans le cas des formules =SI(G19>G23;(SI(G11="A";G21-G24;(SI (G11="V";-(G21-G24);"";"") ou =((G11="A")*(G19>G23)*(G21-G24))+((G11="V")*(G19>G23)*-(G21-G24)) lorsque G19 est inférieur ou égal à G23 dans le premier cas on a une cellule vide, dans l'autre le résultat est 0 il faudrait donc dans le premier cas =SI(G19>G23;(SI(G11="A";G21-G24;(SI (G11="V";-(G21-G24);"";(SI(G11="A";-(G21-G24);(SI (G11="V";(G21-G24);"") dans le second =((G11="A")*(G19>G23)*(G21-G24))+((G11="A")*(G19<=G23)*-(G21-G24))+((G11="V" )*(G19>G23)*-(G21-G24))+((G11="V")*(G19<=G23)*(G21-G24)) Effectivement ! Moralité, c'est quand même mieux de rédiger avec les opérateurs logiques SI ET OU qui offrent une lisibilité plus grande donc une maintenance plus aisée et évitent le genre de noeuds que l'on peut avoir avec d'autres formulations. Merci pour ce corrigé ... et amitiés aux Toulousains ;-) Francois - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [users-fr] Re: Calc Formule complexe
Jean Sympa a écrit : Où est l'erreur? Je crois qu'une parenthèse n'est pas à sa place, voire plusieurs... et qu'un espace est peut-être pas la cause du problème mais gênant pour comprendre... =SI(G19>G23;(SI(G11="A";G21-G24;(SI (G11="V";-(G21-G24);"";"") La bonne version serait : =SI(G19>G23;(SI(G11="A";G21-G24;SI(G11="V";G24-G21;"");""))) Désolé mais je ne peux pas vérifier, pas le temps de refaire votre fichier, bon courage quand même (pensez à véirfiez, quelquesoient vos essais, qu'il y a autant de parenthèses ouvrantes que fermantes, pour commencer, ensuite je pense que l'erreur précédente a été de rajouter les parenthèses manquantes d'un bloc, mais au mauvais endroit. De plus la formule -(G21-G24) admet la forme plus simple G24-G21, il y a même peut-être moyen de faire beaucoup plus simple avec une valeur absolue, mais ça dépend du sens du V et du A dans votre programme. Bon courage. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [users-fr] Re: Calc Formule complexe
Julien a écrit : Jean Sympa a écrit : Où est l'erreur? Je crois qu'une parenthèse n'est pas à sa place, voire plusieurs... et qu'un espace est peut-être pas la cause du problème mais gênant pour comprendre... =SI(G19>G23;(SI(G11="A";G21-G24;(SI (G11="V";-(G21-G24);"";"") (...) Bonjour, après vérif ... =SI(G19>G23;(SI(G11="A";G21-G24;(SI (G11="V";-(G21-G24);"";"") fonctionne bien. C'est la parenthèses de fin qui était doublée et il en manquait une pour fermer les arguments du SI ( ) principal. Petit conseil : Quand la formule fait des couacs elle affiche un numéro d'erreur et un commentaire dans la barre d'état. 508 = Paire manquante Le commentaire vaut ce qu'il vaut en la circonstance (pas manquant mais manquant et redondant !) et reste mystérieux. Paire de quoi ? c'est la perche tendue aux mauvais esprits ... Dans une formule, une parenthèse ouverte c'est forcément une autre parenthèse fermée, la fameuse paire. Quand les choses se compliquent, retrouver si chaque ' ( ' lui correspond bien une ' ) ' peut s'avérer laborieux pour nos petits yeux. Premier réflexe : F2 ou double clic dans la cellule affichant le message Err:truc chouette pour passer en mode édition. Avec les flèches du clavier déplacez le curseur. Au passage d'une parenthèse un signal temporaire (mise en gras) se fait sur la parenthèse fermante ou ouvrante correspondante. Cordialement Patrick - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [users-fr] Re: Calc Formule complexe
Patrick a écrit : Quand les choses se compliquent, retrouver si chaque ' ( ' lui correspond bien une ' ) ' peut s'avérer laborieux pour nos petits yeux. Premier réflexe : F2 ou double clic dans la cellule affichant le message Err:truc chouette pour passer en mode édition. Avec les flèches du clavier déplacez le curseur. Au passage d'une parenthèse un signal temporaire (mise en gras) se fait sur la parenthèse fermante ou ouvrante correspondante. Bonjour, Autre solution : utiliser l'assistant de fonction (bouton 'f(x)' avec des étoiles à côté de la barre de formule). L'onglet Structure permet de repérer les zones qui vont ensemble et où ça commence à décrocher. Laurent BP - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]