今天我們來學習下,如何做近似的區間匹配,這個也是一個粉絲提問的問題,感覺非常的典型,就寫個文章來講講。
如下圖所示,我們需要根據右側的費用表,來進行快遞費用的匹配,其實對於這樣的問題,我們利用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,所以函數就會返回表頭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。
原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/251423.html