为什么这个Excel IF语句有“太多争论”?

为什么这个Excel语句有“太多争论”? Excel允许多达7个嵌套的IF,我不能看到用逗号或括号的错误?

如果(C7> $ B $ 1,(如果B7 = C7,“完成”,“处于风险”),IF(C7 = $ B $ 1)<14,IF(C7> B7, “AT RISK”,“CHECK”),“ON TRACK”,“ON TRACK”)

我已经尝试像常规代码一样,并努力find错误。 谁能帮忙?

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 

谢谢!

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

 =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") 

当你这样看的时候,应该很明显的是你在陈述结尾处遗漏了一个正确的父母,而第二行中的左父母错位了。

 =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电子表格因充满错误而臭名昭着。