Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带嵌套IF/LEFT/AND函数的Excel公式_Excel_Excel Formula_Formula - Fatal编程技术网

带嵌套IF/LEFT/AND函数的Excel公式

带嵌套IF/LEFT/AND函数的Excel公式,excel,excel-formula,formula,Excel,Excel Formula,Formula,我用嵌套的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”

我用嵌套的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(左(G3,1)=“1”、“998”、IF(左(G3,1)=“2”、“998”、IF(左(G3,1)=“3”、“998”、IF(左(G3,1)=“4”、“996”、IF(左(G3,1)=“5”、“996”、IF(左(G3,1)=“9”(和(左(K3,3)“075”))K3()))))))))))))))
这是我添加的尝试嵌套语句:

IF(LEFT(G3,1)="9"(AND(LEFT(K3,3)<>"075"))
IF(左(G3,1)=“9”(和(左(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


若要使其保持现有嵌套样式,请执行以下操作:

=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


以下是您可以使用的公式:

=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
是一个actaul数字,而不是文本,则@ScottCraner有一个很好的点,它不会看到前导零。要克服这一点,您应该在单元格
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是一个ActUL数,而不是@ ScottCraner的文本有很好的一点,它不会看到前导零。要克服这个问题,你应该在Cys<代码> K3前面加上<代码> <代码> .< /P>当面对嵌套的If()时,你可以考虑使用Switch()相反,公式不起作用,因为K3中的<代码> 075代码/代码>不是< >代码>“075”<代码>而是<代码> 75代码>代码>,它被格式化为“代码> 075”/代码>,公式将看到公式条中的内容,而不是格式化版本。当面对嵌套的IFE(s)时,您可能会考虑使用开关()。相反,公式不起作用,因为K3中的
075
不是
“075”
,而是
75
,它被格式化为
075
,公式将看到公式栏中的内容,而不是格式化的版本。嗨,谢谢你的评论!我正在测试这个,它正在放“997”即使K3是075。我想我理解您添加的嵌套语句的逻辑,但我不明白为什么它不在K3是075、076、089时保留值?我没有测试过它,但如果K3是“075”,AND()应该返回false,因为NOT()返回false,因为OR()返回true,因为OR返回true。如果不是这样,请从内到外构建它,以查看逻辑何时崩溃。嗨,谢谢你的评论!我正在测试它,它正在放置“997”即使K3是075。我想我理解您添加的嵌套语句的逻辑,但我不明白为什么它不在K3是075、076、089时保留值?我没有测试过它,但如果K3是“075”,AND()应该返回false,因为NOT()返回false,因为OR()返回true,因为OR返回true。如果不是这样,则从内到外构建它,以查看逻辑何时崩溃。谢谢!这是问题的前导零。在这里指出我之后,我解决了这个问题,现在这个公式(以及提到的其他公式)正在工作。看到几个不同的公式来实现这一点很有帮助。谢谢!这是问题的前导零。我在这里被指出后解决了这个问题,现在这个公式(以及提到的其他公式)正在工作。看到几个不同的公式来实现这一点很有帮助。