这个问题的核心在于如何根据目的地和重量提取出对应的价格,可以使用Excel中的Macth和Index函数嵌套来解决,下面用“目的地:浙江,货重:238kg”的订单来说明。
第一步:先将你的价格图转化成标准的Excel表,重量区间部分取起始重量,目的地列中的合并类需要拆分开。比如浙江/江苏/上海需要拆分成3行。做好像这样(图中价格仅作为举例)
转化好的价格图
第二步:使用Match函数算出“测试订单”中浙江在目的地列所在的位置
目的地位置
函数=MATCH(A14,$A$3:$A$10,0)
其中$A$3:$A$10目的地区域,需要绝对引用,0代表精确查找,结果会返回3
第三步:使用Match函数算出“测试订单”中货重238kg在价格区间区域所在的位置
货重位置
函数=MATCH(B14,$C$2:$J$2,1)
其中$C$2:$J$2为价格区间区域需要绝对引用,1代表小于。结果会返回4
第四步:使用Index函数提取对应的价格
函数=INDEX($C$3:$J$10,C14,D14)
其中$C$3:$J$10为价格区域需要绝对引用,C14,D14分别代表算上面两个步骤算出的价格区域中的行和列,结果返回3.8
可以将第二步和第三步融合到一起
函数=INDEX($C$3:$J$10,MATCH(A14,$A$3:$A$10,0),MATCH(B14,$C$2:$J$2,1))
第五步:用价格计算公式算出价格
函数=E14*INDEX($C$3:$J$10,MATCH(A14,$A$3:$A$10,0),MATCH(B14,$C$2:$J$2,1))+10
结果返回914.4
结尾:这个我已经尽量很详细的描述了,本着“授人以鱼不如授人以渔”的原则还希望你能好好学习一下里面的函数用法。然后还可以使用Vlookup+Match来提取价格,原理基本相似。
将附图的报价表复制到EXCEL表格中,然后用VBA代码就很方便计算出各种快递费用。如果不会VBA,也可能用公式,但报价表要改动一下:目的地每地拆分成一行,重量不能写区间,写上限或下限,然后用MATCH函数就能找到对应的价格。
图片粘贴到这里就不清晰了,我将图中Q2的公式复制来供你参考:
=OFFSET($A$1,MATCH(O2,B$2:B$999,0),MATCH(P2,B$1:M$1,1))
应该很容易达成,但你只出了计算条件,没有贴需要计算的实际信息,公式没有办法直接写出,建议建一个示例表,把一万多单中复制少量,组成计算表,并把收费表也建在该示例表中。然后发给我,或补充贴图。
用表查找方式做就可以了,把你的费用表添加一列地区,根据地区朝招对应收费表上的目的地再根据重量取对应列的价格进行计算。思路可以给你,自己动手做一下就行了。