和 IN OR 在 AND in Excel 函数中



我需要检查 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语句。当然,也有一些例外,但这是要遵循的一般准则。

最新更新