今天我们来学习下,如何做近似的区间匹配,这个也是一个粉丝提问的问题,感觉非常的典型,就写个文章来讲讲。
微软Office LTSC 2021专业增强版 简体中文批量许可版 2024年09月更新
- 类型:办公软件
- 大小:2.2GB
- 语言:简体中文
- 时间:2024-09-12
如下图所示,我们需要根据右侧的费用表,来进行快递费用的匹配,其实对于这样的问题,我们利用Xlookup就行了,来看下我的解决方法。
一、整理数据源
首先我们需要对数据源来做整理,取每个区间的最大值来对应的这个区间,构建一个新的表格,新表格如下图所示。
最后一个数字可以设置一个永远也达不到的数字,在这里写的是100000,大家可以根据自己的需要来设置。
二、Xlookup近似匹配
公式:=XLOOKUP(I4,$B$3:$F$3,$B$4:$F$13,,1)
这个函数的关键点就是第五参数,近似匹配,设置为1就表示会找到【下一个比较大的结果】。
如下图所示,我们查找的数字是1.5,表头中是没有1.5的,所以就会返回下一个较大的项,在当前的表头中,下一个较大的项是2,所以函数就会返回表头2对应的这一列数字,就是图中的黄色列。
三、Xlookup精确匹配
公式:=XLOOKUP(H4,$A$4:$A$13,XLOOKUP(I4,$B$3:$F$3,$B$4:$F$13,,1))
- 第一参数:H4,省份名称
- 第二参数:$A$4:$A$13,查找表中的省份列
- 第三参数:XLOOKUP(I4,$B$3:$F$3,$B$4:$F$13,,1)
这个就是Xlookup的常规用法,将我们上一步找到的数字对应的列,放入了当前Xlookup的第三参数中。
四、超过3kg的
上面是获取了每个区间对应的价格,但是如果超过了3KG,每1gk是需要加1的,为了满足这个条件我们还需要使用IF函数来做条件判断
公式:=IF(I4>3,ROUND(I4,0)-3+XLOOKUP(H4,$A$4:$A$13,XLOOKUP(I4,$B$3:$F$3,$B$4:$F$13,,1)),XLOOKUP(H4,$A$4:$A$13,XLOOKUP(I4,$B$3:$F$3,$B$4:$F$13,,1)))
这个公式虽然很长,但是理解起来并不复杂,判断重量是否大于3,如果大于3就使用ROUND对重量四舍五入,结果减去3,再加上Xlookup,如果小于3就直接返回Xlookup。