这是我的公式:
=IF(D4>=98, "5", IF(D4=97, "4.9", IF(D4=OR(95,96), "4.8", IF(D4=94, "4.7", IF(D4=OR(92,93), "4.6", IF(D4=OR(90,91), "4.5", IF(D4=OR(88,89), "4.4", IF(D4=OR(86,87), "4.3", IF(D4=OR(84,85), "4.2", IF(D4=OR(82,83), "4.1", IF(D4=OR(80,81), "4"), IF(D4<=79, "3.9 or below")))))))))))
我正在尝试根据我已有的 100 分制计算结果创建一个 5 星评级系统。
答案1
尝试将表达式分成几行(并根据嵌套进行缩进),这样您就可以计算每个参数,IF()
从而轻松找到错误。我可以看到它。你也可以看到它吗?(更新:现在我标记了它。)
IF(
D4>=98, 1
"5", 2
IF( 3
D4=97, 1
"4.9", 2
IF( 3
D4=OR(95, 96), etc.
"4.8",
IF(
D4=94,
"4.7",
IF(
D4=OR(92, 93),
"4.6",
IF(
D4=OR(90, 91),
"4.5",
IF(
D4=OR(88, 89),
"4.4",
IF(
D4=OR(86, 87), 1
"4.3", 2
IF( 3
D4=OR(84, 85), 1
"4.2", 2
IF( 3
D4=OR(82, 83), 1 (this IF has 4)
"4.1", 2
IF( 3
D4=OR(80, 81), 1
"4"), 2
IF( 4 <-- error
D4<=79, 1
"3.9 or below"))))))))))) 2
此外,您的表达的另一个问题是您需要使用OR(D4=80, D4=81)
而不是D4=OR(80, 81)
。
实际上,使用单个SWITCH()
函数来替换所有这些 IF。
答案2
您的公式需要大量更正,让我一一解释。
出现错误的原因,争论太多。
您将括号放
)
错了位置,请检查下面公式的最后一部分,以)
粗体和斜体表示。如果 (D4=OR(80,81), "4"), 如果 (D4<=79, "3.9 或以下")))))))))))
"4"
是TRUE
部分,之后是IF
,FALSE
它绝不能放在括号内。
注意: 删除“4”后面的括号后,最后还需要添加一个括号。
- 它应该像下面显示的那样:
IF(D4=OR(80,81), "4", IF(D4<=79, "3.9 或以下"))))))))))))
因此你的公式应该这样写:
=IF(D4>=98, "5", IF(D4=97, "4.9", IF(D4=OR(95,96), "4.8", IF(D4=94, "4.7", IF(D4=OR(92,93), "4.6", IF(D4=OR(90,91), "4.5", IF(D4=OR(88,89), "4.4", IF(D4=OR(86,87), "4.3", IF(D4=OR(84,85), "4.2", IF(D4=OR(82,83), "4.1", IF(D4=OR(80,81), "4", IF(D4<=79, "3.9 or below"))))))))))))
现在另一个问题:
您已使用,如果中的值为或,则
IF(D4=OR(95,96), "4.8"
返回。FALSE
4.8
D4
95
96
原因是,公式不会读取中的
95
或,即使 中填充了任一值。96
D4
它应该像下面显示的那样:
IF(OR(D4=95,D4=96), "4.8"
由于您正在处理数字数据,因此在这种情况下,所有
TRUE
值都应不带引号,例如4.8
。
注意: TRUE
如果您需要作为文本值,您可以保留“4.8” 。
最后我想推荐这样的公式,它测试所有值都会返回预期结果。
=IF(D4>=98, 5, IF(D4=97, 4.9, IF(OR(D4=95,D4=96), 4.8, IF(D4=94, 4.7, IF(OR(D4=92,D4=93), 4.6, IF(OR(D4=90,D4=91), 4.5, IF(OR(D4=88,D4=89), 4.4, IF(OR(D4=86,D4=87), 4.3, IF(OR(D4=84,D4=85), 4.2, IF(OR(D4=82,D4=83), 4.1, IF(OR(D4=80,D4=81), 4, IF(D4<=79, "3.9 or below"))))))))))))
答案3
大家好,戴夫的回答看起来是最好的。
如果您不想走那条路,另一个简单的解决方案是设置另一个(如果需要,可以隐藏)值工作表,然后对包含值和表的单元格使用简单的 VLOOKUP。
我希望你已经把事情弄清楚了。