Excel公式嵌套IF AND OR

时间:2016-04-15 19:44:47

标签: excel excel-formula

您好,我正在努力让这个工作,我在大多数情况下但缺少一件我想添加的内容。到目前为止我正在使用这个

<button id="myButton">Show</button>
...
<script>
// Get a reference to your button
var myButton = document.querySelector('#myButton');

// The code you want to execute after the given time
function executeLater(){
    alert(2);
}

// We attach an event listener to your button
myButton.addEventListener('click', function(){
    alert('1');
    setTimeout(executeLater, 2000);
});
</script>

我想要发生的是添加如果物品已发货状态但未在另一个系统中收到但货物在1个日历日内,则将该字段设置为如果其超过一天说失败则说明其他方式。

如果=IF(OR(AND(G2="Received", C2<>0),AND(G2<>"Received",C2=0)), "PASS", "FAIL") 是&#34;收到&#34;并且G2不为0然后通过否则失败 如果C2未收到&#34;已收到&#34;并且G2为0然后通过否则失败 如果C2是&#34;&#34;发货&#34;并且G2不是零,C2从当前日期起不到1天,然后REVIEW否则失败

1 个答案:

答案 0 :(得分:1)

我会在最后一段中完全按照您的说法编写,并从原始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。它有点短,并且不依赖于嵌套if,因此在未来添加更多条件组合应该更容易。

我错过了最后一次约会要求。更新声明:

    =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()添加了一个额外的条件。