95 votos

¿Por qué = -x ^ 2 + x para x = 3 en Excel da como resultado 12 en lugar de -6?

Supongamos que mi celda A1 en una hoja de cálculo de Excel tiene el número 3 . Si entro en la formula

 = - A1^2 + A1
 

en A2, luego A2 muestra el número 12, cuando debería mostrar -6 (o -9 +3)

¿Porqué es eso? ¿Cómo puedo prevenir este comportamiento engañoso?

136voto

Rodolfo Oviedo Puntos 48

Respuesta corta

Para resolver este problema, sólo tiene que añadir un 0 antes del signo igual

= 0 - A1^2 + A1

o añadir un par de paréntesis para forzar el orden estándar de las operaciones

= - (A1^2) + A1

o reemplazar el signo menos por su interpretación común de la multiplicación por -1

= -1 * A1^2 + A1

Explicación detallada

En virtud de Excel convenios,

= - 3^2

es igual a (-3)^2 = 9, mientras que

= 0-3^2

es igual 0-9 = -9.

¿Por qué la adición de sólo un 0 cambia el resultado?

No precedido por un minuendo, el signo menos en -3^2 se considera un operador de negación, que es un operador unario (con un solo argumento) que cambia el signo del número (o expresión) que sigue. Sin embargo, el signo menos en 0-3^2 es un operador de resta, que es un operador binario que resta lo que sigue, - de lo que precede -. De acuerdo a Excel, las convenciones, el operador de exponenciación ^ se calcula después de que el operador de negación y antes de que el operador de resta. Consulte "operadores de Cálculo y de la prioridad en Excel", sección "El orden en que Excel realiza operaciones en las fórmulas".

La matemática estándar convención es que la exponenciación se calcula antes de que ambos negación y la resta o, más simplemente, ^ se calcula antes de -. Vergonzosamente, Excel eligió a los diferentes convenios de los de álgebra reglas, los libros de texto escolares, de escritura académica, calculadoras científicas, Lotus 1-2-3, Mathematica, Maple, cálculos orientados a lenguajes como Fortran o Matlab, MS Works, y... VBA (el lenguaje utilizado para escribir Excel macros). Por desgracia, Calc de LibreOffice y Hojas de cálculo de Google siguen la misma convención para la compatibilidad con Excel. Sin embargo, la colocación de una expresión en el cuadro de búsqueda de Google o en el bar dan excelentes resultados. Si pulsa intro, el orden de los cálculos se dará mediante el uso de paréntesis. Un debate en el que un matemático mata a los argumentos de un "equipo científico de la" defensa de la prioridad de la negación sobre exponenciation: http://mathforum.org/library/drmath/view/69058.html

General De Soluciones

Si desea calcular

- anything ^ 2,

añadir un 0 antes del signo igual

0 - anything ^ 2

o añadir un par de paréntesis para forzar el orden estándar de las operaciones

- ( anything ^ 2 )

o reemplazar el signo menos por su interpretación común de la multiplicación por -1

-1 * anything ^ 2

Un comentario a otra respuesta, dice que el único caso de que usted tiene que ser consciente de la no-estándar de la prioridad de la regla es donde el signo menos de la siguiente manera un signo igual (=-). Sin embargo, hay otros ejemplos, como =exp(-x^2) o =(-2^2=2^2), donde no hay una minuendo antes del signo igual.

Gracias a @BruceWayne para proponer una respuesta corta, que escribí al principio.

Usted puede estar interesado en por Qué 2^1^2 en Excel resultado en 4 en lugar de 2?

21voto

BruceWayne Puntos 142

Un poco más sucinta que la Respuesta de Rodolfo, puedes usar:

 =-(A1^2)+(A1)
 

(Edit: no lo vi totalmente, fue una auto pregunta / respuesta).

14voto

trapper Puntos 249

Un - inicial se considera parte del primer término.

=-3^2 se procesa como (-3)^2 = 9

Con un cero al inicio se trata como una resta normal.

=0-3^2 se procesa como 0 - 3^2 = -9

Y si tienes dos operadores, entonces ocurrirá lo mismo.

=0--3^2 se procesa como 0 - (-3)^2 = -9 y =0+-3^2 se procesa como 0 + (-3)^2 = 9

4voto

routhken Puntos 39

Porque Excel está interpretando tu ecuación como:

(-x) ^ 2 + x

Cuando quisiste

- (x ^ 2) + x

Para evitar este tipo de comportamiento no deseado, la mejor práctica es hacer un uso intensivo del paréntesis para definir su propio sistema de prioridad, ya que la negación no es lo mismo que la resta, y por lo tanto no está cubierta por PEMDAS. Un ejemplo sería como:

(- (x ^ 2)) + x

Podría ser una exageración, pero así es como garantizo que Excel se comporte como yo quiero.

3voto

Gary's Student Puntos 4373

Puedes tenerlo de cualquier manera:

 =-A1^2+A1
 

devolverá un 12 , pero:

 =0-A1^2+A1
 

devolverá un -6

Si sientes que devolver 12 viola el sentido común; Ten en cuenta que Google Sheets hace lo mismo.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: