二维码 购物车
部落窝在线教育欢迎您!

函数界也搞裁员?我们恐将告别IF函数!

 

作者:老菜鸟来源:部落窝教育发布时间:2020-01-09 15:25:00点击:2992

分享到:
0
收藏    收藏人气:0人
版权说明: 原创作品,禁止转载。

编按:

哈喽,大家好!都说职场如战场,这句话放在函数界也一点不过分。前段时间,刚上任的XLOOKUP,就让有着三十五岁工龄的VLOOKUP面临职场危机,好在XLOOKUP只能在收费版的excel中使用,且普及度还不高,这才让VLOOKUP有所缓和。谁能想到,没过多久,老员工IF函数也被杠上了,来看看是怎么一回事吧!

 

似乎裁员、辞职这类事件永远都比较受关注,前段时间华为裁员7000人的事件虽然被证实是炒作旧闻,但的确有很多企业每年都在实施人员精简。其实不光我们的社会如此,就连函数圈里也有类似的事件,xlookup函数刚被爆出来的时候,vlookup函数下岗的文章就很是火了一阵,今天我们要说的话题也和函数危机有关,事件的主体是一个大家都非常熟悉的函数,IF函数。

 

作为一个很常用也很实用的函数,IF函数一直是新手比较喜欢的一个,但其实在一些高手的眼中,IF函数是有着很多替代方案的,那么IF函数的危机真的来了吗?

 

问题1:如下图所示,当实际销售量大于销售量目标时,奖励1000元。

 

 

通常遇到这类问题,首先想到的一定是IF函数,公式为:=IF(C2>B2,1000,0)

 

 

大家都能理解这个公式,而且这个问题也相当简单,简单到甚至都不需要用函数就能解决:

 

 

在公式“=(C2>B2)*1000”中,利用了逻辑值直接参与计算,当C2>B2成立时,得到true,反之得到false。逻辑值在与数字计算时,true等同于1false等同于0,因此公式“=(C2>B2)*1000同样可以得到所需的结果。

 

问题2:还是计算奖励的问题,这次对奖励规则做了调整,当实际销量大于目标销量时,每超过一个销量奖励50元,1000元封顶。

 

这时候如果还用IF函数解决,公式就变成了=IF(C2B2,0,IF((C2-B2)*50<1000,(C2-B2)*50,1000))”。

 

 

这个公式进行了两次判断,首先判断是否达到奖励标准,也就是C2B2时,不发奖励;如果达到奖励标准,还要进一步判断奖励是否达到1000元,也就是(C2-B2)*50<1000,如果不到1000,按实际奖励计算,超过了仍按1000计算。

 

在这个问题中,要用好IF已经需要一点功力才行了,公式明显比第一个问题复杂了很多,这时候,IF函数的新对手出现了,而且一下子就来了两个:=MIN(MAX((C2-B2)*50,0),1000)

 

 

Min函数用于得到几个数字中最小的一个,max函数用于得到几个数字中最大的一个,这两个函数配合了一下,竟然把一个原本该是IF函数的活给轻松解决了。

 

这个公式需要分成两部分来理解,首先MAX((C2-B2)*50,0)得到理论奖励和0中的较大者,如果不够奖励标准,(C2-B2)*50就是一个负数,较大者为0,反之就是超额销量*50;接下来再将max得到的结果和1000放在一起,通过min函数来得到较小者,如果奖励金额超过1000,则返回1000。这样就可以把一个比较复杂的IF公式变得简洁。

 

问题3:按超额数量计算阶梯奖励,规则如图所示。

 

 

如果还想用IF来解决这个问题,可以自己试试,确实太长了。下面分享几个不用IF的公式供大家参考:

 

公式1=MIN(MAX(INT((C2-B2)/10+1)*300,),1000)

 

 

这就完全是一种数学思路了,按照阶梯奖励的规则,每一档相差300元,1000元封顶,所以先把超额数量除以10再加1,乘上300就是奖励金额:

 

 

但是会出现负数和超过1000的情况,再用问题2的思路,结合maxmin就能得到最终结果。

 

公式2=MIN(MAX(CEILING(C2-B2+1,10)*30,),1000)

 

 

这个公式可以看作是公式1的改版,还是利用了奖励规则中的一些规律性,用CEILING(C2-B2+1,10)*30取代了INT((C2-B2)/10+1)*300CEILING函数是将数字按照指定的倍数向上舍入,看看下图示例或许就明白了。

 

 

公式3=LOOKUP(C2-B2,$F$2:$H$6)

 


 

公式3完全是利用了LOOKUP可以进行区间匹配的功能,需要说明的是,本例中使用了一个辅助区域,这对于初学者来说是非常有用的,注意辅助区域的首列一定要用下限值。

 

如果不想用辅助区域,可以按f9键把公式里的区域变成数组就行了:

 

=LOOKUP(C2-B2,{-999,0;0,300;10,600;20,900;30,1000})

 

 

如果奖励标准发生变化时,自己修改数组中的数据即可。

 

结论:以上案例中,分别使用了逻辑值、minmaxintceilinGlookup等函数来取代IF,实际上能取代IF的函数还有一些,例如choosetext等都可以,篇幅所限不再一一列举。

 

当问题的判断条件是基于数字的时候,IF往往不是唯一可以选择的途径,换个思路或许可以得到更多方法,但是IF函数的确也有自身的优势,对于一些非数字性的判断,就非它不可了。

 

由此观之,要想在职场中立于不败之地,一定要有自身的优势和技能,并且是一些不可取代的技能!

 

本文配套的练习课件请加入QQ群:747953401下载。

Excel高手,快速提升工作效率,部落窝教育《一周Excel直通车》视频和《Excel极速贯通班》直播课全心为你!

扫下方二维码关注公众号,可随时随地学习Excel

IMG_256

相关推荐:

全网最详细的IF函数教程IF函数的新用法,早会早下班!

取代IF函数的用法一个MAX函数就能解决的事,你居然用IF写了这么长一串!

LOOKUP函数基础用法《VLOOKUP&LOOKUP双雄战(一):VLOOKUP的漂亮开局