【问题标题】:AND within OR within AND in Excel function?Excel函数中的AND内OR内?
【发布时间】:2017-11-15 12:02:40
【问题描述】:

我需要检查a是否超过200,如果B超过150,如果是这样,结果应该是真的。

但是,如果 A 正好是 200,它仍然必须导致 true is B is over 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")

【问题讨论】:

    标签: excel syntax excel-formula


    【解决方案1】:

    这主要是一个数学逻辑问题,但无论如何,这也有助于解决更复杂的情况,尤其是当您难以掌握不同的结果时。

    我会画一个概率树,类似于下面,显示每个结果的所有不同结果:

             A              B
                    ----  > 150  -- True
                    |
     ----  > 200  --|
     |              |
     |              ----  <=150  -- False
     |
     |              ----  > 100  -- True
     |              |
    -|---  = 200  --|
     |              |
     |              ----  <= 100 -- False
     |
     |
     ----  < 200  ----- Anything -- False
    

    一旦正确,收集我们需要的。在这种情况下,我们需要将 True 与 False 分开。最简单的方法是在 True 上工作(5 个结果中有 2 个是 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")
    

    【讨论】:

      【解决方案2】:
      = IF(OR(AND(A=200;B>100);AND(A>200;B>150));"True";"False")
      

      仅供参考:通常,如果多个单独的条件可以返回“true”,则应使用单个 OR 语句中的多个 AND 语句。当然,这也有一些例外,但这是要遵循的一般准则。

      【讨论】:

        猜你喜欢
        • 2013-09-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-16
        • 1970-01-01
        • 2015-01-17
        • 1970-01-01
        相关资源
        最近更新 更多