假设单元格A1
包含某个值,并且单元格中A2
有某些单元格的平均值。
我希望单元格B2
(公式应该存在)在 A2 - A1 >= 0.7 时显示文本“Err”,否则显示“OK”。
我尝试了以下操作,但没有任何效果:
=IF(A2-A1>=0.5, "ERR", "OK")
编辑:
根据以下答案@mistersuraj我创建了以下公式:
=IF(( (A2-A1)>=0,7 );"ERR";"OK")`
Excel 不会显示任何错误,但OK
即使在应该显示时它也会始终显示ERR
。
答案1
看来您在表达式的条件部分犯了错误。它必须是这样的:
=如果(( (A2-A1) >=0.5 ),"错误","确定")
此链接可能会有帮助:在 MS Excel 中使用 IF 语句
我建议添加 () 括号只是为了确认优先顺序。这样括号中的表达式将分块执行,尽管在简单表达式的情况下,没有括号也可以正常工作。
@teylyn:我认为你的表达式是正确的,并给出了正确的结果。你的表达式将返回呃当条件为真时好的当条件为假时
所以请你自己思考一下:
- 当你的条件为 TRUE 时,你想显示 ERR 吗
- 当你的条件为 FALSE 时,你想显示 OK 吗
此外,您还可以在表达式中使用 ROUNDUP((A2-A1),2) >=0.5 函数来自动格式化表达式结果。
答案2
也许您的某个值是以文本形式存储的数字,因此减法不起作用。您可以尝试在减法之前将每个值转换为数字,如下所示:
=IF((A2+0)-(A1+0)>=0.5, "错误", "确定")
将 0 添加到以文本存储的数字会将其转换为数字,并且加法和减法运算不会返回错误。
编辑。
您的电子表格如下所示:
单元格 I3 中的公式计算单元格 A3 至 G25 的平均值,顺便说一句,您可以使用 更高效地完成此操作=AVERAGE(A4:G4)
,而不是像 ( =AVERAGE(A3:G3,A4:G4,A5:G5,A6:G6,A7:G7,....)
)那样引用每一行
看起来,在 J 列中,您想要将每行中 H 列的值与平均值(位于 J3)进行比较。您从 J3 中的公式开始
=IF(( (I3-H3)>=0.7 ),"ERR","OK")
当你将其复制下来时,引用将调整到当前行,因此在第 4 行中公式显示为
=IF(( (I4-H4)>=0.7 ),"ERR","OK")
现在,H4 有一个值,但 I4 为空。这将使 I4-H4 的减法为负数,因此 IF 语句返回 False 部分,即文本“OK”。我在评论中问过你减法的结果是什么。这是故障排除中的重要部分。当你得到意外结果时,你应该检查你的值。
如果您想继续使用当前公式,则需要将平均值公式向下复制,以便它出现在每一行中。请注意,您需要将 Average 函数中的引用更改为绝对引用,这样当公式向下复制时,行号保持不变。
或者您可以更改公式,使其始终引用 I3,即使将其复制下来。
可以通过将 I3 从相对引用更改为绝对引用来实现
=IF(( ($I$3-H3)>=0.7 ),"ERR","OK")
然后复制下来。结果如屏幕截图所示。第 4 行的公式为
=IF(( ($I$3-H4)>=0.7 ),"ERR","OK")
因此,它引用了 H4 并且仍然引用了 I3。
您需要了解 $ 符号在公式中的作用,并了解绝对引用和相对引用之间的区别以及为什么这在复制公式时很重要。