有朋友發來快遞收費標準,問如果根據這個收費標準,計算出發往不同地區、不同重量的快遞應收取的費用?
收費標準:
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元。