繁体   English   中英

Excel:如何在Excel公式中构造嵌套的If条件

[英]Excel: How do i construct nested If condition in Excel formula

这是基于分数的评分公式。

If score < 4 Then LEVEL 1
If score > 4 and score < 9 LEVEL 2
If score > 8 and score < 13 LEVEL 3
If score > 12 and score < 15 LEVEL 4
If score > 15 LEVEL 5

我真的不知道,错误在哪里。 请帮忙。

=IF(A1<4,"LEVEL 1",IF(AND(A1>4,A1<9),"LEVEL 2",IF(AND(A1>8,A1<13,"LEVEL 3",IF(AND(A1>12,A1<17,"LEVEL 4",IF(A1>16,"LEVEL 5")))))))

您不需要AND() 如果第一个条件没有自动通过,则数字大于4,因此您只需检查它是否小于9,依此类推...或在公式中:

=IF(A1<4,"LEVEL 1",IF(A1<9,"LEVEL 2",IF(A1<13,"LEVEL 3",IF(A1<17, "LEVEL 4", "LEVEL 5"))))

您几乎已经掌握了它,您只需要确保关闭AND语句的括号即可:

=IF(A1<4,"LEVEL 1",IF(AND(A1>4,A1<9),"LEVEL 2",IF(AND(A1>8,A1<13),"LEVEL 3",IF(AND(A1>12,A1<17),"LEVEL 4",IF(A1>16,"LEVEL 5")))))

您忘了在当时条件之前在右侧关闭AND
第三个IF的状态非常恶劣,并且没有then或else语句,最后一个AND也发生了这种情况。

=IF(A1<4,              "LEVEL 1",
 IF(AND(A1>4, A1<9),   "LEVEL 2",
 IF(AND(A1>8, A1<13),  "LEVEL 3",
 IF(AND(A1>12, A1<17), "LEVEL 4",
 IF(A1>16,             "LEVEL 5")))))

很高兴您能正常工作,但在这种情况下,您可能还想考虑另一种方法,而不是嵌套IF。

在其他工作表上或工作表中的其他地方创建一个表格,其中包含您的级别和达到该级别所需的分数:0级别1 4级别2 8级别3 12级别4 15级别5

然后使用VLOOKUP或INDEX(MATCH函数)查找匹配项。我喜欢INDEX(MATCH,因为它可以为您提供更多控制权。

=INDEX(Sheet1!$B$1:$B$5,MATCH(A1,Sheet1!$A$1:$A$5,1))

在这种情况下,我们的列表将在Sheet1上,级别在B列中列出,而所需的分数在A列中,而我们的公式在工作表2上引用从A1开始的实际得分。

INDEX函数查看一个数组-B1:B5-并从该数组中的指定行返回一个值。 MATCH函数查看一个数组-A1:A5-并返回小于或等于匹配值的最大数字在数组中的位置。 它将结果传回INDEX以便可以选择适当的行。

与多层嵌套IF相比,此方法更易于维护,修改和扩展。

您还可以使用以下公式:

=CHOOSE(MATCH(Score,{0,4,8,12,15},1),"Level 1","Level 2","Level 3","Level 4","Level 5")

分数是输入单元格的定义名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM