请以后不要用IF函数。

相信大多数人对IF函数都很熟悉。作为一个条件判断函数,简单实用,很受表兄弟们的欢迎!

但是,在处理一些表格数据时,您可能已经习惯了使用IF函数。其实有时候IF函数并不是最合适的,尤其是多层嵌套的情况下。为了避免错误,也为了让其他人更容易理解,可以使用其他更合适的函数来解决问题。

这里有两个很常见的例子给你解释。

01

评估等级

如下表1和表2所示:根据考核得分和等级判定标准,评定员工的考核等级。

拜托,这种问题以后不要再用IF函数了

表1▲

拜托,这种问题以后不要再用IF函数了

表2▲

常规做法,直接用IF函数判断,并输入公式:

= IF(B2 & gt;=85,”甲级& # 8221;,如果(B2 & gt;=70,”b级& # 8221;,如果(B2 & gt;=60,”丙类& # 8221;,”d级& # 8221;))),填下去就好了。

拜托,这种问题以后不要再用IF函数了

但如果判断水平继续提高,嵌套的IF函数会越来越多,公式会非常冗长,容易出错。

在这里,我们可以借助VLOOKUP函数的模糊搜索来解决问题,也不用担心设置更多的关卡。首先,我们对考核等级标准进行梳理,提取各等级的下限分数,从低到高按升序排列:

拜托,这种问题以后不要再用IF函数了

然后输入公式:=VLOOKUP(B2,$I$2:$J$5,2)并向下填充。

拜托,这种问题以后不要再用IF函数了

注意:VLOOKUP函数公式中的第四个参数可以是TRUE或1,也可以直接省略,返回的结果等于或小于查找值的最大值。

02

计算奖金

如下表,计算员工奖金,规则是实际到岗人数每超过计划人数奖励80元,奖金封顶1200元。

拜托,这种问题以后不要再用IF函数了

如果使用IF函数,请输入公式:

= IF(C2 & lt;B2,0,IF((C2-B2)* 80 & lt;200,(C2-B2) * 80,1200)),然后填下来。

拜托,这种问题以后不要再用IF函数了

这里如果用function先判断是否超过计划人数,超过就有奖励;如果超过,计算出来的奖金会分两种情况,重新判断。超过1200的,按实际奖金计算;超过1200就封顶1200。

仔细分析,有两个边界值,0和1200。我们也可以用MAX和MIN函数来解决这个问题。先将(C2-B2)*80计算的结果与0比较,得出最大值0,再将(C2-B2)*80与1200比较,得出最小值1200。

输入公式:=MIN(MAX((C2-B2)*80,0),1200)并向下填充。

拜托,这种问题以后不要再用IF函数了

结果与IF函数的计算一致,公式更短更清晰。

我们再引申一下,把奖金计算规则改为:人数超过5人(不含5人)的,奖励300;人数超过5至10人(不含10人)的,奖励600人;10至15人以上(不含15人),奖励900;15人以上奖励1200。

此时,如果仍然使用IF函数,并且公式嵌套在多个层中,则太冗长:

= IF((C2-B2)& lt;0,0,如果((C2-B2)& lt;5300,如果((C2-B2)& lt;一万零六百,如果((C2-B2)& lt;15,900,1200))))

拜托,这种问题以后不要再用IF函数了

如果你使用这个公式,你很容易犯错误,别人会看着你的头很大。

您也可以使用MAX和MIN函数进行计算,并输入公式:

= min (max (int ((C2-B2)/5+1) * 300,0),1200),往下填就行了。

拜托,这种问题以后不要再用IF函数了

注:从0开始,每步增加5人,结合INT函数将整数增加1,上下步之差乘以300。最后,MAX和MIN函数将分别用于获取最大值和最小值。