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

时间:2016-09-29 11:34:26

标签: excel 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")))))))

5 个答案:

答案 0 :(得分:3)

您不需要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"))))

答案 1 :(得分:1)

你几乎拥有它,你只需要确保关闭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")))))

答案 2 :(得分:0)

在当时条件之前,您忘记关闭右边的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")))))

答案 3 :(得分:0)

很高兴你能让它运转起来,但是在这种情况下你可能需要考虑另一种方法,而不是嵌套的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更易于维护,修改和扩展。

答案 4 :(得分:0)

你也可以使用这个公式:

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

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