Краткий ответ
Чтобы решить эту проблему, просто добавьте 0 перед знаком равенства
= 0 - A1^2 + A1
или добавьте пару круглых скобок, чтобы заставить стандартный порядок операций
= - (A1^2) + A1
или заменить знак минус его общей интерпретацией умножения на -1
= -1 * A1^2 + A1
В этом конкретном случае, когда у вас есть дополнительный член + A1, лучшее решение - это то, что предлагает @ lioness99a:
= A1 - A1^2
Детальное объяснение
В соответствии с соглашениями Excel,
= - 3^2
равно (-3) ^ 2 = 9, а
= 0-3^2
равно 0-9 = -9.
Почему добавление только 0 меняет результат?
Знак минус в -3 ^ 2 , которому не предшествует minuend, считается оператором отрицания , который является унарным оператором (только с одним аргументом), который меняет знак следующего числа (или выражения). Однако знак минус в 0-3 ^ 2 является оператором вычитания , который является двоичным оператором, который вычитает то, что следует -
из того, что предшествует -
. Согласно соглашениям Excel, оператор возведения в степень^
вычисляется после оператора отрицания и перед оператором вычитания . См. «Операторы вычисления и приоритет в Excel» , раздел «Порядок, в котором Excel выполняет операции в формулах».
Стандартное математическое соглашение состоит в том, что возведение в степень вычисляется до отрицания и вычитания или, проще говоря, ^
вычисляется раньше -
. Позорно, Excel выбрал различные соглашения из правил алгебры, школьных учебников, академического письма, научных калькуляторов, Lotus 1-2-3, Mathematica, Maple, языков, ориентированных на вычисления, таких как Fortran или Matlab, MS Works и ... VBA ( язык, используемый для написания макросов Excel), К сожалению, Calc для LibreOffice и Google Sheets придерживаются одного и того же соглашения для совместимости с Excel. Тем не менее, размещение выражения в окне поиска Google или панели дает отличные результаты. Если вы нажмете ввод, порядок вычислений будет дан с использованием скобок. Дискуссия, в которой математик убивает аргументы «ученого-компьютерщика», защищающего преимущество отрицания над возведением в степень: http://mathforum.org/library/drmath/view/69058.html
Общие обходные пути
Если вы хотите вычислить
- Anything ^ 2,
добавить 0 перед знаком равенства
0 - Anything ^ 2
или добавьте пару круглых скобок, чтобы заставить стандартный порядок операций
- ( Anything ^ 2 )
или заменить знак минус его общей интерпретацией умножения на -1
-1 * Anything ^ 2
Из вышеупомянутых альтернатив я предпочитаю добавлять знак 0 перед знаком минус, потому что это наиболее практично. Если выражение уже заключено в круглые скобки, я избегаю добавлять круглые скобки. Интенсивное использование скобок затрудняет чтение, отладку и запись выражений.
Если добавлен дополнительный термин (или вычтен без проблемы четной мощности),
- Anything ^ 2 + ExtraTerm,
лучшее решение - разместить ExtraTerm первым,
ExtraTerm - Anything ^ 2.
В комментарии к другому ответу говорится, что единственный случай, когда вы должны знать о нестандартном правиле приоритета, - это когда знак минус следует за знаком равенства (= -). Однако есть и другие примеры, такие как = exp (-x ^ 2) или = (- 2 ^ 2 = 2 ^ 2), где перед знаком минус нет миньенда.
Спасибо @BruceWayne за предложение короткого ответа, который я написал в начале.
Вы можете быть заинтересованы в соответствии с Excel, 4 ^ 3 ^ 2 = (4 ^ 3) ^ 2. Это действительно стандартное математическое соглашение?