Excel 스프레드 시트의 셀 A1 에 숫자 3이 있다고 가정 합니다. 수식을 입력하면
= - A1^2 + A1
A2에서 A2는 -6 (또는 -9 + 3)을 표시해야 할 때 숫자 12를 표시합니다.
왜 그런 겁니까? 이 오도하는 행동을 어떻게 방지 할 수 있습니까?
Excel 스프레드 시트의 셀 A1 에 숫자 3이 있다고 가정 합니다. 수식을 입력하면
= - A1^2 + A1
A2에서 A2는 -6 (또는 -9 + 3)을 표시해야 할 때 숫자 12를 표시합니다.
왜 그런 겁니까? 이 오도하는 행동을 어떻게 방지 할 수 있습니까?
답변:
짧은 답변
이 문제를 해결하려면 등호 앞에 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에서 빼기 부호가 앞에 오지 않는 -3 ^ 2의 빼기 부호는 부정 연산자 로 간주되며, 뒤에 오는 숫자 (또는 표현식)의 부호를 변경하는 단항 연산자 (한 개의 인수 만있는)입니다. 그러나 0-3 ^ 2의 빼기 부호는 빼기 연산자 이며,이 연산자는 -
앞에 나오는 것을 빼는 이항 연산자입니다 -
. Excel의 규칙에 따라 지수 연산자 ^
는 부정 연산자 다음 과 빼기 연산자 전에 계산됩니다 . "Excel의 계산 연산자 및 우선 순위" 섹션, "Excel이 수식에서 연산을 수행하는 순서"섹션을 참조하십시오 .
표준 수학 대회는 점이다 지수가 계산 부정과 뺄셈 모두 전에 , 또는 더 간단하게 언급 ^
하기 전에 계산됩니다 -
. 부끄럽게도 Excel은 대수 규칙, 학교 교과서, 학술 작문, 과학 계산기, Lotus 1-2-3, Mathematica, Maple, Fortran 또는 Matlab, MS Works, ... VBA 와 같은 계산 지향 언어와 다른 규칙을 선택했습니다 . Excel 매크로 작성에 사용되는 언어). 불행히도 LibreOffice 및 Google 스프레드 시트의 Calc는 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에 관심이있을 수 있습니다 . 이것이 실제로 표준 수학 규칙입니까?
Rodolfo의 답변보다 조금 더 간결합니다.
=-(A1^2)+(A1)
(편집 : 나는 그것이 자기 질문 / 답변임을 완전히 보지 못했습니다.)
Excel은 방정식을 다음과 같이 해석하기 때문입니다.
(-x) ^ 2 + x
원할 때 :
-(x ^ 2) + x
이런 종류의 원치 않는 동작을 방지하기 위해 부정이 뺄셈과 같지 않으므로 PEMDAS에서 다루지 않기 때문에 자신의 우선 순위 시스템을 정의하기 위해 괄호를 많이 사용하는 것이 가장 좋습니다. 예를 들면 다음과 같습니다.
(-(x ^ 2)) + x
과잉 일 수 있지만 이것이 Excel이 원하는 방식으로 작동하도록 보장하는 방법입니다.
x - x^2
. 이렇게하면-가 이진 빼기 연산자로 해석됩니다.
이 표현식 = - A1^2 + A1
은 Excel에만 해당되므로 Excel 규칙을 따라야합니다. 여기에있는 다른 답변과 달리 올바른 우선 순위 는 없습니다 . 다른 응용 프로그램에서 채택한 다른 규칙 만 있습니다. 참고로 Excel에서 사용되는 우선 순위는 다음과 같습니다.
: Range
<space> intersection
, union
- Negation
% Percentage
^ Exponential
* and / Multiplication and Division
+ and - Addition and Subtraction
& Concatenation
= < > <= >= <> Comparison
괄호를 사용하여 무시할 수 있습니다.
-
이진 또는 이진일 수 있습니다. 그러나 이것이 작업 순서를 의미하지는 않습니다. 파이썬, 루비, 옥타브, Awk, 하스켈 (지수 연산자를 염두에 둔 최초의 5 개 언어)에서는 -3 ** 2
항상 다른 언어로 평가합니다 -9
. 왜? 그것이 정답이기 때문입니다.
어느 쪽이든 가질 수 있습니다.
=-A1^2+A1
12 반환 하지만 :
=0-A1^2+A1
-6 을 반환합니다
12 를 반환하는 것이 상식을 위반한다고 생각되면 ; Google 스프레드 시트도 동일한 기능을 수행합니다.
=A1-A1^2
또한 반환 -6
또는, 당신은 그냥 할 수 있습니다
= A1 - A1^2
때문에 -y + x = x-y
다른 사람들은 "어떻게 피할 수 있습니까?" 질문의 일부. 왜 그런 일이 발생했는지 알려 드리겠습니다.
1979 년 개인용 컴퓨터에는 메모리 및 처리 기능이 매우 제한되어 있기 때문입니다.
VisiCalc 는 IBM PC가 출시되기 2 년 전인 1979 년 Apple II 용으로 도입되었습니다 (대부분의 최신 데스크탑 및 랩톱 컴퓨터는 직계 조상을 추적합니다). Apple II는 최대 64KiB (65,536 바이트)의 RAM을 가질 수 있었으며 VisiCalc를 실행하려면 최소 32KiB가 필요했습니다. 여기에서 약간 비켜 보면, VisiCalc는 Apple II와 아마도 개인용 마이크로 컴퓨터의 "킬러 응용 프로그램"으로 널리 알려져 있습니다.
특수한 경우가 적고 수식을 미리 볼 필요가 적을수록 스프레드 시트 수식을 구문 분석하는 코드가 더 간단 해지고 결과적으로 작아집니다. 따라서 더 큰 스프레드 시트를 처리 할 수있는 대가로 코너 케이스에서 사용자를 좀 더 명확하게 요구하는 것이 합리적입니다. 고급 Apple II를 사용하더라도 응용 프로그램에 필요한 메모리를 고려한 후에는 수십 킬로바이트 만 가지고 놀았 음을 기억하십시오. 메모리가 부족한 시스템 (48 KiB RAM은 "심각한"시스템에 일반적이지 않은 구성)을 사용하면 한계가 훨씬 낮아졌습니다.
IBM이 PC를 출시했을 때 새로운 아키텍처에 대한 VisiCalc 포트가 만들어졌습니다. Wikipedia는이 포트를 "버그 호환" 이라고하므로 시스템이 기술적으로 더 복잡한 구문 분석이 가능하더라도 동일한 공식 구문 분석 동작을 보게 될 것입니다.
1982 년부터 Microsoft는 다중 계획 크로스 플랫폼 스프레드 시트를 통해 VisiCalc와 1-2-3 이후에 경쟁했습니다 . 나중에 Lotus 1-2-3 은 1983 년에 IBM PC를 위해 특별히 도입되었으며 VisiCalc를 빠르게 능가했습니다. 전환을보다 쉽게하기 위해 VisiCalc와 같은 방식으로 공식을 구문 분석하는 것이 합리적이었습니다. 따라서 미리 예측 된 동작이 제한됩니다.
1985 년 Microsoft 는 원래 Macintosh 용이며 1987 년 버전 2 부터 PC에 Excel을 도입했습니다 . 다시 한 번 더 쉽게 전환하려면 사람들이 이미 10 년 전부터 사용했던 수식 파싱 동작을 수행하는 것이 합리적이었습니다.
Excel을 업그레이드 할 때마다 동작을 변경할 수있는 기회가 있었지만 사용자가 수식을 입력하는 새로운 방법을 배워야 할뿐만 아니라 이전 버전에서 사용하거나 만든 스프레드 시트와의 호환성이 손상 될 위험이 있습니다. 여러 상업 회사가 각 분야에서 서로 경쟁하는 여전히 경쟁이 치열한 시장에서 사용자가 익숙한 행동을 유지하기로 결정했습니다.
2019 년으로 넘어가도, 우리는 여전히 1978 년부터 1979 년까지 결정된 공식 파싱 행동 결정에 여전히 고착되어 있습니다.
이 표현식 - A1^2
에는 두 개의 연산자, 즉 단항 부정 연산자 -
와 이진 지수 연산자가 포함 ^
됩니다. 괄호가 없으면 두 가지 해석이있을 수 있습니다. 어느 한 쪽:
-(A1^2)
또는:
(-A1)^2
첫 번째는 먼저 피연산자 A1
와 지수를 사용하여 지수화를 2
한 다음 그에 대한 부정을 수행한다고 말합니다.
두 번째는 먼저 operand에서 부정을 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
정말 간단한 수학 일뿐입니다.
규칙 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
그리고 당신의 질문에 대한 답변이 있습니다 :
이전의 세 가지 규칙을 모두 결합 :
-x ^ 2 + x, 여기서 x = 3 => -3 ^ 2 + 3 = 9 + 3 = 12
여러분 께 드리는 조언은 매년 시간을 보내고 수학의 기본 규칙을 계속 새롭게하는 것입니다.
실제로 기본 수학을 아는 것만으로도 세계의 많은 부분을 유지하고 유지할 수있는 기술입니다.
+-*/
은와 같은 이진수 연산자에는 적용 되지만 -
또는 과 같은 단항 연산자에는 적용 되지 않습니다 +
. 전원 연산자의 우선 순위는보다 높은 *
하고 /
있지만, 단항 연산자는 더 높은 우선 순위가