Excel公式嵌套IF和OR

嗨,我试图得到这个工作,我已经大部分,但缺less一件我想补充。 到目前为止,我正在使用这个

=IF(OR(AND(G2="Received", C2<>0),AND(G2<>"Received",C2=0)), "PASS", "FAIL") 

我想要发生的是补充说,如果物品是装运状态,但没有收到另一个系统,但货物是在一个日历日内,然后设置字段说明审查其他明智的,如果它的一天以上说失败。

如果G2被“接收”并且C2不为0,那么如果G2不是“接收”且C2是0,则否则通过否则失败,否则否则如果G2是“发货”并且C2不为零并且X2从当前不足1天date然后审查否则失败

我会按照您在最后一段中的描述完全写出来,并从原来的IF公式中删除“OR”:

 =IF(AND(G2="Received",C2<>0), "PASS", If(AND(G2<>"Received", C2=0), "Pass", If(AND(G2="Shipped", C2<>0), "Pass", "Fail"))) 

如果情况变得更加复杂的话,那么考虑一下UDF来保持你的理智。

而且,由于这三个条件中的每一个都是互斥的,所以你可以把这个东西重构成一个布尔语句:

 =(G2="Received")*(C2<>0) + (G2<>"Received")*(C2=0) + (G2="Shipped")*(C2<>0) 

这将返回True或False而不是Pass或Fail。 这是一个短一点,不依赖嵌套如果所以添加更多的条件组合应该会更容易在未来。


我错过了最后的date要求。 最新声明:

  =IF(AND(G2="Received",C2<>0), "PASS", If(AND(G2<>"Received", C2=0), "Pass", If(AND(G2="Shipped", C2<>0, Today()-x2<=1), "REVIEW", "Fail"))) 

所以…只是在最后一个AND()这里添加了一个额外的条件。