我需要检查 A 是否超过 200,如果 B 超过 150,如果是这种情况,结果应该是真的。
但是,如果 A 正好是 200,它仍然必须导致 true 是 B 超过 100。
总之
A>200 AND B>150 = True
但如果
A=200 AND B>100 = True
A=200 AND B<=100 = False
我自己试过了,但我卡住了,我的大脑无法处理所有的嵌套,我认为我错过了一些简单的东西,我也认为我使用的语法不正确,但到目前为止我想出的是:
=IF(AND(A>200;B>150;OR(AND(A=200;B>100);"True";"False")
这主要是一个数学逻辑问题,但无论如何,这也应该有助于更复杂的场景,特别是如果你难以掌握不同的结果。
我会画一个概率树,类似于下面,显示每个概率树的所有不同结果:
A B
---- > 150 -- True
|
---- > 200 --|
| |
| ---- <=150 -- False
|
| ---- > 100 -- True
| |
-|--- = 200 --|
| |
| ---- <= 100 -- False
|
|
---- < 200 ----- Anything -- False
一旦正确,收集我们需要的。在这种情况下,我们需要将真与假分开。最简单的方法是处理 True(5 个结果中有 2 个是 True,因此工作量更少!
遵循每个"True"分支,并AND
它们:
AND(A>200;B>150)
AND(A=200;B>100)
获得所有内容后,将它们OR
在一起:
OR(AND(A>200;B>150);AND(A=200;B>100))
所以最终结果:
IF(OR(AND(A>200;B>150);AND(A=200;B>100)); "True"; "False")
另外:如果你想得到"假":
遵循每个"False"分支,并AND
它们(注意,由于最后一个是单独的,我们可以删除AND
(:
AND(A>200;B<=150)
AND(A=200;B<=100)
A<200
获得所有内容后,将它们OR
在一起:
OR(AND(A>200;B<=150);AND(A=200;B<=100);A<200)
所以最终结果:
IF(OR(AND(A>200;B<=150);AND(A=200;B<=100);A<200); "False"; "True")
= IF(OR(AND(A=200;B>100);AND(A>200;B>150));"True";"False")
只是一个供将来参考的提示:通常,如果几个单独的条件可以返回"true",那么您应该使用单个OR
语句中的多个AND
语句。当然,也有一些例外,但这是要遵循的一般准则。