Excel:两个条件模糊匹配?其实很简单
来源:网络收集 点击: 时间:2024-04-02表格做了一个简单的美化,D列的服务费是需要用公式来计算的,计算规则如下:
A列的工龄3个月以上(大于90天)的话,根据B列去G3:I3匹配值
A列的工龄3个月以内(小于90天)的话,根据B列去G2:I2匹配值
现在的D列就是匹配出来的费率!
这个问题用if函数的话其实也很好解决,因为工龄就两个范围,所以直接分段就可以了,
后面的费率也是一样,直接分段处理。(分段处理的好处是可以节约一些if函数的嵌套)

先来看一下函数公式吧!

这样分段更容易看,首先判断A2的值,小于90的话执行中间那一行if,反之执行最下面那行if
再来看中间的if,大于90,直接返回0了,反之进入后面的if继续判断,大于600就返回0.025(为什么是0.025?因为2.5%正好是0.025,当然你也可以用2.5%),后面那个就不用再说了,都是一样的!
当然,if的书写逻辑并非就这一种,你也可以先判断B列的值,然后再判断A列的值!

这样用If函数的好处是可以不要辅助表,缺点是要修改返回值有点麻烦,容易把公式改错!
所以接下来给大家介绍的是offset+if+match三个函数嵌套的解法!
Offset函数已经讲过多次了,给它一个基点,再给他偏移行号和偏移列号,它就能给你返回对应单元格的值!前题是需要做辅助表,来看一下做好的辅助表是什么样的!

为了方便大家理解,G1:I1写的是总单量的区间范围,公式中所使用到的则是G2:I2,注意观察这两行的值有什么关系,特征是什么?这非常重要。
因为工龄只有两个,所以F列就没有做修改了,先来看一下公式吧!
=OFFSET($F$2,IF(A290,1,2),MATCH(B2,$G$2:$I$2))

这样子是不是少很多字符了呢?当然,这里面的if函数也可以省略,可以直接运算得出,为了尽可能的节省字符,把offset的参数1也做了修改,来看一下能有多省吧!=OFFSET($F$3,A290,MATCH(B2,$G$2:$I$2))

个人建议
最终效果如图所示。

版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_407147.html