为什么这个Excel IF语句有“太多参数”?

时间:2014-07-25 21:27:11

标签: excel

为什么这个Excel语句有太多的参数"? Excel允许最多7个嵌套的IF,我无法用逗号或括号查看错误?

= IF(C7> $ B $ 1,(IF B7 = C7,“COMPLETE”,“AT RISK”),IF(C7 <= B7,IF((C7- $ B $ 1)&lt; 14,IF( C7&gt; B7,“AT RISK”,“检查”),“ON TRACK”),&#34; ON TRACK&#34;)

我尝试过像常规代码一样对其进行标记,并且正在努力寻找错误。有人可以帮忙吗?

If CPS(C7) > Today(B1)
  TRUE If CPS(C7) = Due(B7)
    TRUE return COMPLETE
    FALSE return AT RISK
  FALSE If CPS(C7)>Today(B1)
    TRUE If CPS within 2 weeks
      TRUE IF CPS(C7) > Due(B7)
        TRUE return AT RISK
        FALSE return Check
      FALSE return ON TRACK
  FALSE return ON TRACK

谢谢!

1 个答案:

答案 0 :(得分:2)

您应该尝试缩进实际代码,而不是编写伪代码并缩进。

=IF(C7>$B$1,
    (IF B7=C7, "COMPLETE", "AT RISK"),
    IF(C7<=B7,
        IF((C7-$B$1)<14,
            IF(C7>B7, "AT RISK", "CHECK"),
            "ON TRACK"),
        "ON TRACK")

当你这样看时,很明显你在声明的末尾错过了一个正确的paren,而第二行的左边的paren是错误的。

=IF(C7>$B$1,
    IF(B7=C7, "COMPLETE", "AT RISK"),
    IF(C7<=B7,
        IF((C7-$B$1)<14,
            IF(C7>B7, "AT RISK", "CHECK"),
            "ON TRACK"),
        "ON TRACK"))

我还应该提一下,这个逻辑对于单个Excel公式来说是错综复杂的。如果您的工作表确实需要这种复杂程度,您应该将其分解为多个公式或移动到另一个平台。复杂的Excel电子表格因充满错误而臭名昭着。