我使用嵌套的IF语句创建了一个运行良好的公式,但是我需要为其添加更多的逻辑。我将在公式中嵌套其他语句,但在正确的处理方式上我有些困惑。
当前公式为:
=IF(LEFT(G3,1)="1","998",IF(LEFT(G3,1)="2","998",IF(LEFT(G3,1)="3","998",IF(LEFT(G3,1)="4","996",IF(LEFT(G3,1)="5","996",K3)))))
这工作正常,但是现在我需要添加其他逻辑:
我的失败尝试是这样的:
IF(LEFT(G3,1)="1","998",IF(LEFT(G3,1)="2","998",IF(LEFT(G3,1)="3","998",IF(LEFT(G3,1)="4","996",IF(LEFT(G3,1)="5","996",IF(LEFT(G3,1)="9"(AND(LEFT(K3,3)<>"075"))K3))))))
这是我尝试添加的嵌套语句:
IF(LEFT(G3,1)="9"(AND(LEFT(K3,3)<>"075"))
那么显然我将需要为“ 076”和“ 089”再重复几次,但是我还没有为其中之一做正确的事。
我知道这可以通过一些VBA代码来完成,但是对于此文件,我希望避免使用VBA,并将其限制为仅适用于公式。
任何帮助将不胜感激!
编辑: 使用Scott和L.Scott的答案,即使K3的值为075、076或089,我仍然有“ 997”输入到单元格中。以下是L.Scott推荐的公式的屏幕截图,结果仍然显示“ 997”。
答案 0 :(得分:1)
在以下情况下,将其保留为现有的嵌套样式:
=IF(LEFT(G3,1)="1","998",IF(LEFT(G3,1)="2","998",IF(LEFT(G3,1)="3","998",IF(LEFT(G3,1)="4","996",IF(LEFT(G3,1)="5","996",IF(AND(LEFT(G3,1)="9",NOT(OR(OR(LEFT(K3,3)="075",LEFT(K3,3)="076"),LEFT(K3,3)="089"))),"997",K3))))))
=
IF(LEFT(G3,1)="1","998",
IF(LEFT(G3,1)="2","998",
IF(LEFT(G3,1)="3","998",
IF(LEFT(G3,1)="4","996",
IF(LEFT(G3,1)="5","996",
IF(
AND(
LEFT(G3,1)="9",
NOT(
OR(
OR(
LEFT(K3,3)="075",
LEFT(K3,3)="076"),
LEFT(K3,3)="089"
)
)
), "997", K3
)
)
)
)
)
)
答案 1 :(得分:1)
这是您可以使用的公式:
=IF(SUMPRODUCT(--(LEFT(G3,1)={"1","2","3"}))>0,"998",IF(SUMPRODUCT(--(LEFT(G3,1)={"4","5"}))>0,"996",IF(AND(SUMPRODUCT(--(LEFT(G3,1)="9"))>0,SUMPRODUCT(--(LEFT(K3,3)={"075","076","089"}))=0),"997")))
如果K3
是一个实际数字而不是文本,则@ScottCraner有一个很好的观点,它不会看到前导零。为了解决这个问题,您应该在单元格'
的值前面添加K3
。