Припустимо, моя клітинка A1 в таблиці Excel містить номер 3 . Якщо я ввійду у формулу
= - A1^2 + A1
в A2, тоді A2 показує число 12, коли воно повинно показувати -6 (або -9 + 3)
Чому так? Як я можу запобігти цій оманливій поведінці?
Припустимо, моя клітинка A1 в таблиці Excel містить номер 3 . Якщо я ввійду у формулу
= - A1^2 + A1
в A2, тоді A2 показує число 12, коли воно повинно показувати -6 (або -9 + 3)
Чому так? Як я можу запобігти цій оманливій поведінці?
Відповіді:
Коротка відповідь
Щоб вирішити цю проблему, просто додайте 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 вважається оператором заперечення , який є одинарним оператором (лише з одним аргументом), який змінює ознаку числа (або виразу), що випливає. Однак знак мінус у 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 дає чудові результати. Якщо натиснути клавішу Enter, порядок обчислень буде визначений за допомогою круглих дужок. Дискусія, коли математик вбиває аргументи "вченого-комп'ютера", захищаючи перевагу заперечення над експоненцією: 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. Це справді стандартна математична умова?
Трохи більше, ніж відповідь Родольфо, ви можете використовувати:
=-(A1^2)+(A1)
(Редагувати: я абсолютно не бачив, що це питання про себе / відповідь.)
Провідна -
вважається частиною першого терміну.
=-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
Оскільки Excel інтерпретує ваше рівняння як:
(-x) ^ 2 + x
Коли ви хотіли:
- (х ^ 2) + х
Щоб запобігти такій формі небажаної поведінки, я вважаю, що найкраща практика полягає в тому, щоб широко використовувати дужки для визначення вашої власної системи пріоритетів, оскільки заперечення не є таким же, як віднімання, і, таким чином, не охоплюється PEMDAS. Прикладом може бути такий:
(- (х ^ 2)) + х
Це може бути зайвим, але саме так я гарантую, що Excel веде себе так, як мені хочеться.
x - x^2
. Це забезпечує - інтерпретується як оператор віднімання двійкових.
Вираз = - A1^2 + A1
характерний для Excel, тому він повинен відповідати правилам Excels. На відміну від деяких інших відповідей тут, немає правильного порядку пріоритетності. Існують лише різні конвенції, прийняті різними додатками. Для довідки, порядок пріоритету, який використовується excel, становить:
: Range
<space> intersection
, union
- Negation
% Percentage
^ Exponential
* and / Multiplication and Division
+ and - Addition and Subtraction
& Concatenation
= < > <= >= <> Comparison
Які ви можете змінити за допомогою дужок.
-
може бути одинарним або двійковим. Але це не означає порядок операцій. Інші мови отримують це право: у Python, Ruby, Octave, Awk та Haskell (перші п’ять мов з оператором експоненції, які прийшли до тями) -3 ** 2
завжди оцінюють -9
. Чому? Тому що це правильна відповідь.
Ви можете мати його в будь-якому випадку:
=-A1^2+A1
поверне 12 , але:
=0-A1^2+A1
поверне -6
Якщо ви відчуваєте, що повернення 12 порушує здоровий глузд; пам’ятайте, що Google Sheets робить те саме.
=A1-A1^2
також повертається -6
Крім того, ви могли просто зробити
= A1 - A1^2
оскільки -y + x = x-y
Інші люди відповіли "як я можу цього уникнути?" частина питання. Я збираюся сказати вам, чому це відбувається.
Це трапляється тому, що персональні комп’ютери 1979 року мали дуже обмежені можливості пам'яті та обробки.
VisiCalc був представлений для Apple II в 1979 році, за два роки до первинного випуску IBM PC (до якого більшість сучасних настільних і портативних комп'ютерів відстежують їх пряме походження). Apple II міг би мати 64 Кб (65,536 байт) оперативної пам’яті, а VisiCalc вимагало щонайменше 32 Кбайт для запуску. Як трохи тут, VisiCalc досить широко вважається "вбивчим додатком" для Apple II і, можливо, взагалі для персональних мікрокомп'ютерів взагалі.
Чим менше потрібних менше спеціальних випадків і меншої форми формули, тим простіший (і, як наслідок, менший) код для розбору формули електронних таблиць. Тому було б доцільно вимагати від користувача бути дещо більш чітким у кутових випадках, в обмін на можливість обробляти більші електронні таблиці. Пам’ятайте, навіть у Apple II класу високого класу вам довелося грати лише кілька десятків кілобайт після того, як була оброблена пам'ять, необхідна додатку. У системі з низькою пам’яттю (48 Кб оперативної пам’яті не була рідкісною конфігурацією для «серйозної» машини) межа була ще нижчою.
Коли IBM представила свій ПК, до нової архітектури був зроблений порт VisiCalc. Вікіпедія називає цей порт «сумісним з помилками» , тому ви дуже сподіваєтесь побачити таку саму формулу поведінки при аналізі формули, навіть якщо система технічно здатна до складнішого розбору.
Починаючи з 1982 року, Microsoft конкурувала з VisiCalc, а пізніше 1-2-3, з їхньою багатоплановою електронною таблицею Multiplan . Згодом Lotus 1-2-3 був представлений у 1983 році спеціально для комп'ютера IBM і швидко обігнав VisiCalc на ньому. Щоб полегшити перехід, було має сенс обидві формули аналізувати так само, як це робив VisiCalc. Таким чином, обмежена поведінка, спрямована вперед, переноситься вперед.
У 1985 році Microsoft представила на ПК Excel , спочатку для Macintosh і починаючи з версії 2 в 1987 році. Знову ж таки, щоб полегшити перехід, було доцільно перенести формулу поведінки для розбору формул, до якої люди вже звикли з тих пір, майже десятиліття.
З кожним оновленням Excel існувала можливість зміни поведінки, але це не тільки вимагатиме від користувачів вивчення нового способу введення формул, але й ризикує порушити сумісність з електронними таблицями, використовуваними або створеними з попередньою версією. На все ще дуже конкурентоспроможному ринку, де кілька комерційних компаній конкурують між собою у кожній галузі, ймовірно, було прийнято рішення зберегти поведінку, до якої звикли користувачі.
Швидкий перехід до 2019 року, і ми все ще дотримуємось формул, що розбирають рішення про поведінку, спочатку прийняті не пізніше 1978-1979 років.
Вираз - A1^2
містить два оператори, а саме оператор одинарного заперечення -
та оператор бінарної експоненції ^
. За відсутності жодних дужок може бути два тлумачення. Або:
-(A1^2)
або:
(-A1)^2
Перший один говорить , що спочатку зробити експоненціацію з операндами A1
і 2
, а потім зробити заперечення з цього приводу .
Другий говорить, що спочатку робимо заперечення на операнді A1
, а потім використовуємо експоненцію на результат цього і 2
.
Як було сказано в коментарях до цього питання, повноваження мають більший пріоритет, ніж знаки мінус у будь-якому розумному середовищі. Що означає, що найкраще, якщо система передбачає першу.
Однак Excel віддає перевагу другому.
Урок полягає в тому, що якщо ви не впевнені, що ваше середовище є здоровим чи ні, включіть дужки, щоб бути в безпечній стороні. Тож пишіть -(A1^2)
.
Це не проблема з excel, а з експонентами та негативами. Коли ви берете номер і піднімаєте його до рівної сили, ви скасовуєте негативний знак.
-x^2 + x == (-x * -x) + x
x = 3 => (-3 * -3) + 3
== 9 + 3 => 12
Вам потрібно скористатися дужками та кратними крапками -1
-1 * (x^2) + x
-x^2
де x дорівнює 3, а x^2
де x -3. -x^2+x
ніколи не досягне 12: wolframalpha.com/input/?i=-x%5E2%2Bx
-x ^ 2 + x де x = 3 Це приклад квадратичного рівняння Рівняння можна записати так: -3 * -3 + 3: Множення має перевагу над додаванням, тому результат записується таким чином: 9 + 3 : Чому = 9, тому що від'ємне число x негативне число дає позитивний результат. Це можна перевірити, використовуючи будь-який калькулятор, правило слайдів або будь-яку програму з комп'ютерної математики Кінцевий результат 9 + 3 = 12
Це просто дійсно проста математика.
Правило 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 правил від раніше:
-x ^ 2 + x, де x = 3 => -3 ^ 2 + 3 = 9 + 3 = 12
Моя рада вам - щороку витрачати деякий час і продовжувати освіжати основні правила математики.
Насправді це вміння, яким можна підтримувати і залишатися на вершині значної частини світу, лише знаючи основні математики.
+-*/
, але не для одинакових операторів, таких як -
або +
. Позачерговий оператор потужності вище *
і /
але унарні оператори мають навіть більш високий пріоритет