Rod*_*edo 95 worksheet-function notation microsoft-excel
假设Excel 电子表格中的单元格A1包含数字3。如果我输入公式
= - A1^2 + A1
Run Code Online (Sandbox Code Playgroud)
在 A2 中,然后 A2 显示数字 12,此时它应该显示 -6(或 -9+3)
这是为什么?我怎样才能防止这种误导行为?
Rod*_*edo 136
简答
要解决这个问题,只需在等号前加一个 0
= 0 - A1^2 + A1
Run Code Online (Sandbox Code Playgroud)
或添加几个括号以强制执行标准操作顺序
= - (A1^2) + A1
Run Code Online (Sandbox Code Playgroud)
或将减号替换为乘以 -1 的常见解释
= -1 * A1^2 + A1
Run Code Online (Sandbox Code Playgroud)
在这种特殊情况下,您有额外的术语 +A1,最好的解决方案是@lioness99a 提出的解决方案:
= A1 - A1^2
Run Code Online (Sandbox Code Playgroud)
详细说明
根据 Excel 的约定,
= - 3^2
Run Code Online (Sandbox Code Playgroud)
等于 (-3)^2 = 9,而
= 0-3^2
Run Code Online (Sandbox Code Playgroud)
等于 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 宏的语言). 不幸的是,LibreOffice 和 Google Sheets 中的 Calc 遵循相同的约定以与 Excel 兼容。但是,在 Google 的搜索框或搜索栏中放置表达式会产生极好的结果。如果按 Enter 键,将使用括号给出计算顺序。数学家扼杀了“计算机科学家”的论点,捍卫否定优先于取幂的讨论:http : //mathforum.org/library/drmath/view/69058.html
一般解决方法
如果你想计算
- Anything ^ 2,
Run Code Online (Sandbox Code Playgroud)
在等号前加0
0 - Anything ^ 2
Run Code Online (Sandbox Code Playgroud)
或添加几个括号以强制执行标准操作顺序
- ( Anything ^ 2 )
Run Code Online (Sandbox Code Playgroud)
或将减号替换为乘以 -1 的常见解释
-1 * Anything ^ 2
Run Code Online (Sandbox Code Playgroud)
在上述替代方案中,我更喜欢在 de 减号前添加 0,因为它是最实用的。
如果添加一个额外的项(或在没有偶次幂问题的情况下减去),
- Anything ^ 2 + ExtraTerm,
Run Code Online (Sandbox Code Playgroud)
最好的解决方案是先放置 ExtraTerm,
ExtraTerm - Anything ^ 2.
Run Code Online (Sandbox Code Playgroud)
对另一个答案的评论说,您必须注意非标准优先规则的唯一情况是减号跟在等号 ( =-) 之后。但是,还有其他示例,例如=exp(-x^2)or =(-2^2=2^2),其中减号前没有被减数。在了解意外约定之前,我曾经在 Excel 中写了一个高斯密度为
= EXP(-( (x-mu)/sigma )^2 / 2 ) / sigma / SQRT( 2*PI() ),
Run Code Online (Sandbox Code Playgroud)
这导致了荒谬的结果。我通过在第一个-符号前添加 0 解决了这个问题。
感谢@BruceWayne 提出了我在开头写的简短答案。
您可能感兴趣根据 Excel,4^3^2 = (4^3)^2。这真的是指数顺序的标准数学约定吗?
Bru*_*yne 21
比 Rodolfo 的答案更简洁,您可以使用:
=-(A1^2)+(A1)
Run Code Online (Sandbox Code Playgroud)
(编辑:我完全没有看到这是一个自我问题/答案。)
小智 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
| 归档时间: |
|
| 查看次数: |
19198 次 |
| 最近记录: |