Réponse courte
Pour résoudre ce problème, il suffit d'ajouter un 0 avant le signe égal.
= 0 - A1^2 + A1
ou ajouter un couple de parenthèses pour forcer l'ordre standard des opérations
= - (A1^2) + A1
ou remplacer le signe moins par son interprétation courante de multiplication par -1
= -1 * A1^2 + A1
Dans ce cas particulier, où vous avez le terme supplémentaire +A1, la meilleure solution est celle proposée par @lioness99a :
= A1 - A1^2
Explication détaillée
Sous les conventions d'Excel,
= - 3^2
est égal à (-3)^2 = 9, alors que
= 0-3^2
équivaut à 0-9 = -9.
Pourquoi l'ajout d'un simple 0 change-t-il le résultat ?
N'étant pas précédé d'un point, le signe moins dans -3^2 est considéré comme une opérateur de négation qui est un opérateur unaire (avec un seul argument) qui change le signe du nombre (ou de l'expression) qui suit. Cependant, le signe moins dans 0-3^2 est un opérateur unaire. opérateur de soustraction qui est un opérateur binaire qui soustrait ce qui suit -
de ce qui précède -
. Selon les conventions d'Excel, le opérateur d'exponentiation ^
est calculé après l'opérateur de négation y avant l'opérateur de soustraction . Voir "Opérateurs de calcul et préséance dans Excel" , section "L'ordre dans lequel Excel effectue les opérations dans les formules".
La convention mathématique standard est que le exponentiation est calculé avant la négation et la soustraction ou, plus simplement dit, ^
est calculée avant -
. Malheureusement, Excel a choisi des conventions différentes de celles des règles d'algèbre, des manuels scolaires, des écrits universitaires, des calculatrices scientifiques, de Lotus 1-2-3, de Python, des langages à orientation mathématique (Mathematica, Maple, Fortran, Matlab, Julia), MS Travaux, et... VBA (le langage utilisé pour écrire les macros d'Excel) . Malheureusement, Calc de LibreOffice et Google Sheets suivent la même convention pour des raisons de compatibilité avec Excel. Cependant, placer une expression dans la boîte ou la barre de recherche de Google donne d'excellents résultats. Voici une discussion où un mathématicien tue les arguments d'un "informaticien" défendant la préséance de la négation sur l'exponentiation : http://mathforum.org/library/drmath/view/69058.html
Solutions de contournement générales
Si vous voulez calculer
- Anything ^ 2,
ajouter un 0 avant le signe égal
0 - Anything ^ 2
ou ajouter quelques parenthèses pour forcer l'ordre standard des opérations
- ( Anything ^ 2 )
ou remplacer le signe moins par son interprétation courante de multiplication par -1
-1 * Anything ^ 2
Parmi les alternatives ci-dessus, je préfère ajouter un 0 avant le signe moins car c'est la plus pratique.
Si un terme supplémentaire est ajouté (ou soustrait sans le problème de la puissance paire),
- Anything ^ 2 + ExtraTerm,
la meilleure solution est de placer l'ExtraTerm en premier,
ExtraTerm - Anything ^ 2.
Un commentaire sur une autre réponse indique que le seul cas où vous devez tenir compte de la règle de préséance non standard est celui où un signe moins suit un signe égal ( =-
). Cependant, il existe d'autres exemples, comme =exp(-x^2)
o =(-2^2=2^2)
où il n'y a pas de point avant le signe moins. Avant de connaître cette convention inattendue, j'ai écrit une fois une densité gaussienne dans Excel sous la forme suivante
= EXP(-( (x-mu)/sigma )^2 / 2 ) / sigma / SQRT( 2*PI() ),
ce qui a conduit à des résultats ridicules. J'ai résolu le problème en ajoutant un 0 avant le premier -
signe.
Merci à @BruceWayne d'avoir proposé une réponse courte, que j'ai écrite au début.
Vous pourriez être intéressé par Selon Excel, 4^3^2 = (4^3)^2. Est-ce vraiment la convention mathématique standard pour l'ordre d'exponentiation ?