爱知趣的同学们好,今天看到群里有位同学问了个比较常见的问题,她要求使用IF函数来解决。先来看看问题是什么吧!
群里的图片截图有点小,来看一下从文件里截的图吧
表格做了一个简单的美化,D列的服务费是需要用公式来计算的,计算规则如下:
A列的工龄3个月以上(大于90天)的话,根据B列去G3:I3匹配值
A列的工龄3个月以内(小于90天)的话,根据B列去G2:I2匹配值
现在的D列就是匹配出来的费率!
这个问题用if函数的话其实也很好解决,因为工龄就两个范围,所以直接分段就可以了,
后面的费率也是一样,直接分段处理。(分段处理的好处是可以节约一些if函数的嵌套)
怕大家抄错,直接贴出公式:
=IF(A2<90, IF(B2>900,0,IF(B2>600,0.025,0.05)), IF(B2>900,0,IF(B2>600,0,0.025)) ) |
这样分段更容易看,首先判断A2的值,小于90的话执行中间那一行if,反之执行最下面那行if
再来看中间的if,大于90,直接返回0了,反之进入后面的if继续判断,大于600就返回0.025(为什么是0.025?因为2.5%正好是0.025,当然你也可以用2.5%),后面那个就不用再说了,都是一样的!
当然,if的书写逻辑并非就这一种,你也可以先判断B列的值,然后再判断A列的值!
PS:数学好的同学还可以直接列方程式来解,这就有点跑题了!
这样用If函数的好处是可以不要辅助表,缺点是要修改返回值有点麻烦,容易把公式改错!
所以接下来给大家介绍的是offset+if+match三个函数嵌套的解法!
Offset函数已经讲过多次了,给它一个基点,再给他偏移行号和偏移列号,它就能给你返回对应单元格的值!前题是需要做辅助表,来看一下做好的辅助表是什么样的!
为了方便大家理解,G1:I1写的是总单量的区间范围,公式中所使用到的则是G2:I2,注意观察这两行的值有什么关系,特征是什么?这非常重要。
因为工龄只有两个,所以F列就没有做修改了,先来看一下公式吧!
=OFFSET($F$2,IF(A2<90,1,2),MATCH(B2,$G$2:$I$2))
这样子是不是少很多字符了呢?当然,这里面的if函数也可以省略,可以直接运算得出,为了尽可能的节省字符,把offset的参数1也做了修改,来看一下能有多省吧!
=OFFSET($F$3,A2>90,MATCH(B2,$G$2:$I$2))
怎么样,有没有觉得很复杂呢,其实当我们对这些常用的函数功能掌握以后,解决起来就一点都不复杂了!
接下来是练习题:
1、 要求计算服务费,现在的公式只是返回了费率,那服务费要如何计算出来呢?
2、 工龄目前只有两个,要求增加两个,即变成
0-3个月(小于90天)、3个月-1年(小于365天)、1年-2年(小于730天)、2年以上
你可以使用纯if函数(写出来老长了,不推荐,喜欢虐待if函数的不能放过这机会),也可以按后面的建立关系表,然后使用函数。
如果你实在做不出来,记得截图到群里来找我们哟,唯有多练习,才能进步得更快!
今天的分享就到这,如果教程对大家有用,希望大家多多分享点赞支持小编哦!你的每一次点赞和转发都是支持小编坚持原创的动力。