我需要检查A是否超过200,如果B超过150,如果是这样的话,结果应该是真的。
但是,如果A恰好是200,那么它仍然必须结果为真,即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")
答案 0 :(得分:1)
这主要是一个数学逻辑问题,但无论如何,这应该有助于更复杂的场景,特别是如果你难以掌握不同的结果。
我会绘制一个类似于下面的概率树,显示每个概率树的所有不同结果:
A B
---- > 150 -- True
|
---- > 200 --|
| |
| ---- <=150 -- False
|
| ---- > 100 -- True
| |
-|--- = 200 --|
| |
| ---- <= 100 -- False
|
|
---- < 200 ----- Anything -- False
一旦这是正确的,收集我们需要的。在这种情况下,我们需要将True与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”:
关注每个'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")
答案 1 :(得分:0)
= IF(OR(AND(A=200;B>100);AND(A>200;B>150));"True";"False")
只是一个未来参考的提示:通常,如果几个单独的条件可以返回&#34; true&#34;,单个AND
语句中的几个OR
语句就是您应该使用的语句。当然,这有一些例外,但这是一般的指导原则。