93

Предположим, что моя ячейка A1 в таблице Excel содержит номер 3. Если я введу формулу

= - A1^2 + A1

в A2 тогда A2 показывает число 12, когда оно должно показывать -6 (или -9+3)

Это почему? Как я могу предотвратить это вводящее в заблуждение поведение?

11 ответов11

132

Короткий ответ

Чтобы решить эту проблему, просто добавьте 0 перед знаком равенства

= 0 - A1^2 + A1

или добавьте пару круглых скобок, чтобы заставить стандартный порядок операций

= - (A1^2) + A1

или заменить знак минус его общей интерпретацией умножения на -1

= -1 * A1^2 + A1

Детальное объяснение

В соответствии с соглашениями 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

В комментарии к другому ответу говорится, что единственный случай, когда вы должны знать о нестандартном правиле приоритета, - это когда знак минус следует за знаком равенства (= -). Тем не менее, есть и другие примеры, например = exp (-x ^ 2) или = (- 2 ^ 2 = 2 ^ 2), где перед знаком равенства нет миньенда.

Спасибо @BruceWayne за предложение короткого ответа, который я написал в начале.

Вы можете быть заинтересованы в Согласно Excel, 4 ^ 3 ^ 2 = 4096.Я это исправлю?

20

Немного более лаконично, чем ответ Родольфо, вы можете использовать:

=-(A1^2)+(A1)

(Редактировать: я совершенно не видел, что это был вопрос / ответ.)

14

Ведущий - считается частью первого семестра.

=-3^2 обрабатывается как (-3)^2 = 9

С нулем в начале вместо этого он рассматривается как нормальное вычитание.

=0-3^2 обрабатывается как 0 - 3^2 = -9

И если у вас есть два оператора, то произойдет то же самое.

=0--3^2 обрабатывается как 0 - (-3)^2 = -9 и =0+-3^2 обрабатывается как 0 + (-3)^2 = 9

3

Выражение = - A1^2 + A1 относится к Excel, поэтому должно следовать правилам Excels. Вопреки некоторым другим ответам здесь, нет правильного порядка приоритета. Есть просто разные соглашения, принятые разными приложениями. Для справки: порядок приоритетности, используемый Excel:

:       Range
<space> intersection
,       union
-       Negation
%       Percentage
^       Exponential
* and / Multiplication and Division
+ and - Addition and Subtraction
&       Concatenation
= < > <= >= <>  Comparison

Который вы можете переопределить с помощью скобок.

3

Потому что Excel интерпретирует ваше уравнение как:

(-x)^ 2 + x

Когда вы хотели:

-(х ^ 2) + х

Чтобы предотвратить нежелательное поведение такого рода, я считаю, что лучше всего использовать скобки для определения вашей собственной системы приоритетов, поскольку отрицание - это не то же самое, что вычитание, и поэтому не распространяется на PEMDAS. Пример будет выглядеть так:

(-(х ^ 2))+ X

Это может быть излишним, но я гарантирую, что Excel ведет себя так, как я хочу.

3

Вы можете получить это любым способом:

=-A1^2+A1

вернет 12, но:

=0-A1^2+A1

вернет -6

Если вы чувствуете, что возвращение 12 нарушает здравый смысл; знать, что Google Sheets делает то же самое.

2

В качестве альтернативы, вы могли бы просто сделать

= A1 - A1^2

потому что -y + x = x-y

0

Выражение - A1^2 содержит два оператора, а именно одноместной операции отрицания - и оператор двоичного возведения в степень ^ При отсутствии каких-либо круглых скобок возможны две интерпретации. Или:

-(A1^2)

или же:

(-A1)^2

Первый говорит, что сначала возведите в степень с операндами A1 и 2 , а затем сделайте отрицание на этом.

Второй говорит: сначала сделай отрицание на операнде A1 , а затем возведи возведение в степень в результате этого и 2 .

Как было сказано в комментариях к вопросу, полномочия имеют более высокий приоритет, чем знаки минус в любой нормальной среде. Это означает, что лучше всего, если система предполагает первый.

Тем не менее, Excel предпочитает второй.

Урок заключается в том, что если вы не уверены, является ли ваша среда здоровой или нет, включите скобки, чтобы быть на безопасной стороне. Так что напишите -(A1^2) .

-1

Это не проблема с Excel, но с показателями и негативами. Когда вы берете число и повышаете его до четной степени, вы отменяете отрицательный знак.

-x^2 + x == (-x * -x) + x 
x = 3  => (-3 * -3) + 3
       ==  9 + 3 => 12

Вам нужно использовать скобки и умножить на -1

-1 * (x^2) + x
-2

-x ^ 2+x где x = 3 Это пример квадратного уравнения Уравнение можно записать так:-3 * -3+ 3:Умножение имеет приоритет перед сложением, поэтому результат будет записан следующим образом:9 + 3 :Почему = 9, потому что отрицательное число x отрицательное число дает положительный результат. Это можно проверить с помощью любого калькулятора, правила слайдов или любой компьютерной математической программы. Окончательный результат 9 + 3 = 12

-3

Это просто очень простая математика.

Правило 1 Даже умножение отрицательных чисел приведет к положительному результату:

минус * минус = плюс

минус * минус * минус = минус

минус * минус * минус * минус = плюс

Это связано с тем, что минусы отменяют друг друга попарно.

Правило 2 Степень каждого числа определяет, что это число будет умножено само по себе несколько раз.

(2) ^ n, где n = 2 => 2 * 2 = 4

(-2) ^ n, где n = 2 => (-2) * (- 2) = 4

И если вы можете увидеть правило № 1 ..

(-3) ^ n, где n = 3 => (-3) * (-3) * (-3) = 9 * (-3) = -27

Правило 3 Умножение и деление имеют более высокий приоритет, чем сложение и вычитание.

3 * 5+2 = 15+2 = 17

3 *(5+2) = 3 * 7 = 21

И есть ответ на ваш вопрос:

Объединение всех 3-х правил:

-х ^ 2 + х, где х = 3 => -3 ^ 2 + 3 = 9 + 3 = 12

Мой вам совет - проводить каждый год какое-то время и постоянно обновлять фундаментальные правила математики.

На самом деле это навык, который вы можете поддерживать и оставаться на вершине большой части мира, только зная основы математики.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .