Excel If 公式

Excel If 公式

我正在尝试在 Excel 中运行一个简单的公式:

=IF(V3>419, "Pass", IF(V3>459, "Merit", IF(V3>499, "Dist", IF(V3>519, "Dist*","Fail"))))

我有 2 列;总体和成绩

Overall     Grade
70          Fail
220         Fail
420         Pass

一定有更简单的方法吗?

答案1

所以根据您的评论,您想知道为什么这个公式不起作用,其次它是否可以简化?

它不起作用,因为所有算作 Merit、Dist 或 Dist* 的东西都高于 419,因此算作 Pass。

您的公式从左到右进行求值,因此在执行任何其他操作之前,它会检查分数是否高于 419。即使分数是 800,它也高于 419,因此第一个测试为 TRUE。Excel 认为它不需要继续,所以它就此停止,称其为 Pass。

如果您选择包含公式的单元格并转到“公式”选项卡,然后选择“公式审核”下的“评估公式”,则可以逐步浏览公式以准确了解发生的情况。


有两种方法可以解决这个问题。一种方法是用 AND 语句替换当前语句

AND(V3>419,V3<459)

但这很笨重。你最好简单地反转语句:

=IF(V3>519,"Dist*",IF(V3>499,"Dist",IF(V3>459,"Merit",IF(V3>419,"Pass","Fail"))))


这样,如果它对于 Dist* 来说不够高,它将检查下一个最高值,依此类推。


遗憾的是,对于第二部分,我想不出一种既能简化公式又不会使解决方案过于复杂化的方法。

答案2

你是倒着来的,首先需要最高的分数,否则 1,000 分将通过第一个if“通过”而不是进入“dist*”。像这样:

=IF(V3>519,"Dist*",IF(V3>499,"Dist",IF(V3>459,"Merit",IF(V3>419,"Pass","Fail"))))

否则,您需要嵌套if值,这样就不太干净了,例如=if(419<v3<459,"pass",...

相关内容