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

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

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放在正确的位置。
第三个IF最终有一个巨大的条件,没有那么陈述,这也发生在最后一个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() 。 如果第一个条件不是自动通过数字大于4,那么你只要检查是否低于9等…或者在一个公式中:

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

你已经差不多了,你只需要确保closuresAND语句的括号:

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

很高兴你的工作,但还有另一种方法,你可能要考虑,而不是像这样的情况下嵌套IFs。

在另一张表或其他表上的表格中创build一个表格,其中包含您需要达到的水平和分数: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以便select合适的行。

这种方法比多级嵌套IF更容易维护,修改和扩展。

你也可以使用这个公式:

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

分数是您input的单元格定义的名称。