Xlookup函数新突破:快递费计算神器 一招搞定!
今日,我们共同探讨一个颇受欢迎的课题——如何实现近似的区间匹配。这一疑问源于粉丝的提问,其典型性不言而喻,因此,我们特意撰写此文,以便为大家详细解答。
以下图片为我们解题的依据,展示了右侧的费用表,我们需根据此表进行快递费用的匹配。实际上,对于此类问题,我们只需运用Xlookup函数即可轻松解决。接下来,我将分享我的解决方法。
一、整理数据源 首先,我们必须对数据源进行整理。具体操作是,提取每个区间的最大值,并将其与对应区间相匹配,从而构建一个新的表格。以下是新表格的示例:
请注意,最后一个数字可以设置为一个永远无法达到的数值,例如在此例中我们使用了100000。您可以根据自己的需求进行调整。
二、Xlookup近似匹配 公式:=XLOOKUP(I4,$B$3:$F$3,$B$4:$F$13,,1) - 第一参数:I4,代表结果表中的重量。 - 第二参数:$B$3:$F$3,代表查询表中的辅助数据。 - 第三参数:$B$4:$F$13,代表查询表中的运费区域。 - 第四参数:省略。 - 第五参数:1,表示近似匹配。
此函数的核心在于第五参数,即近似匹配。将其设置为1,表示将查找“下一个较大的结果”。
如下图所示,我们查找的数字为1.5,而表头中并无1.5这一项。因此,函数将返回下一个较大的项,即表头中的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,每增加1kg(或1000g)则需额外加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函数的结果。
如果您希望提高工作效率,不想再向同事求助解决Excel问题,可以关注我的专栏。WPS用户同样可以使用,本专栏讲解了函数、图表、透视表、数据看板等常用功能,助您快速成为Excel高手。