有朋友发来快递收费标准,问如果根据这个收费标准,计算出发往不同地区、不同重量的快递应收取的费用?
有朋友发来快递收费标准,问如果根据这个收费标准,计算出发往不同地区、不同重量的快递应收取的费用?
收费标准:
公式实现
随意写了几个地址、几种重量的快递,用公式计算费用如下:
H2内公式如下:
=SUMPRODUCT(INDEX($B$2:$C$8,MATCH(“*”&LEFT(F2,2)&”*”,$A$2:$A$8,),)*IF({1,0},1,INT(G2-0.01)))
向下填充,即得所有费用。
公式解释
LEFT(F2,2)
取F2左边两个字符,返回值“北京”;
MATCH(“*”&LEFT(F2,2)&”*”,$A$2:$A$8,)
在A2:A8单元格区域,匹配“*北京*”所在行,返回值为3;
INDEX($B$2:$C$8,MATCH(“*”&LEFT(F2,2)&”*”,$A$2:$A$8,),)
在B2:C8区域,查找第3行的数据,返回值是数组{7,4};
INT(G2-0.01)
对G2单元格的重量-0.01后向下取整,返回值是2;
-0.01的原因是避免正数,如果重量是2,则对2-0.01,即1.99取整,返回1,这样就去除了首重1;
如果重量保留两位小数,可以减掉更小的0.001再取整。
IF({1,0},1,INT(G2-0.01)))
构造一个数组{1,2},1即是首重,2即是超重部分;
SUMPRODUCT(INDEX($B$2:$C$8,MATCH(“*”&LEFT(F2,2)&”*”,$A$2:$A$8,),)*IF({1,0},1,INT(G2-0.01)))
将两个数组{7,4}、{1,2}对应位置数值相乘再相加,即7*1+4*2,得费用为15元。