Excel 嵌套 IF/LEFT/AND 函数的公式
Excel Formula with Nested IF/LEFT/AND Functions
我创建了一个包含嵌套 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)))))
这工作正常,但现在我需要添加额外的逻辑:
- 如果 G3 以“9”开头且 K3 不以“075”、“076”或“089”开头,则单元格等于“997”
我失败的尝试是这样的:
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”。
如果要保持现有的嵌套样式:
=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
)
)
)
)
)
)
您可以使用以下公式:
=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
.
中的值前面添加 '
我创建了一个包含嵌套 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)))))
这工作正常,但现在我需要添加额外的逻辑:
- 如果 G3 以“9”开头且 K3 不以“075”、“076”或“089”开头,则单元格等于“997”
我失败的尝试是这样的:
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”。
如果要保持现有的嵌套样式:
=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
)
)
)
)
)
)
您可以使用以下公式:
=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
.
'