
若是不會LOOKUP函數的這個高級用法,就太可惜了!
要根據價格表查詢價格,查詢的時候,要涉及非常多的條件,始發地、目的地,重量區域,全部判斷完,還得跟最低價比較獲取兩者之間的最大值。
聽起來很難,實際更難,表格還是我做了一些修正后的。
價格表
"查詢表
"舉個例子,始發地義烏,目的地北京,重量1680.57,對應的價格是1.6。金額就是=1680.57*1.6,算出來的金額再跟最低價200比較獲取最大值,也就是=MAX(1680.57*1.6,200)。
"多條件查找,首選LOOKUP函數,語法:
=LOOKUP(1,0/((條件1)*(條件2)),返回區域)
先來搞定最低價,這個簡單點。
=LOOKUP(1,0/((B2=價格表!$A$3:$A$24)*(FIND(C2,價格表!$B$3:$B$24))),價格表!$J$3:$J$24)
"區間的單價就比較麻煩,需要判斷在哪個區間。
為了方便判斷在哪個區間,我在第一行將每個區間的下限寫出來。
"有了下限后,可以借助MATCH函數的模糊查找判斷在哪列。
=MATCH(A2,價格表!$C$1:$I$1)
"再借助OFFSET函數,引用這一列的區域。OFFSET函數引用區域的時候,公式不能直接寫在一個單元格中,那樣看不出效果。
OFFSET(價格表!$B$3:$B$24,0,MATCH(A2,價格表!$C$1:$I$1)
現在就可以查詢單價。
=LOOKUP(1,0/((B2=價格表!$A$3:$A$24)*(FIND(C2,價格表!$B$3:$B$24))),OFFSET(價格表!$B$3:$B$24,0,MATCH(A2,價格表!$C$1:$I$1)))
"單價出來后,金額也跟著出來。
=A2*LOOKUP(1,0/((B2=價格表!$A$3:$A$24)*(FIND(C2,價格表!$B$3:$B$24))),OFFSET(價格表!$B$3:$B$24,0,MATCH(A2,價格表!$C$1:$I$1)))
"最低價跟金額比較獲取最大值。
=MAX(E2,F2)
"最后將所有公式合并起來,并嵌套ROUND函數就搞定了。
=ROUND(MAX(LOOKUP(1,0/((B2=價格表!$A$3:$A$24)*(FIND(C2,價格表!$B$3:$B$24))),OFFSET(價格表!$B$3:$B$24,0,MATCH(A2,價格表!$C$1:$I$1)))*A2,LOOKUP(1,0/((B2=價格表!$A$3:$A$24)*(FIND(C2,價格表!$B$3:$B$24))),價格表!$J$3:$J$24)),2)
"涉及到的函數比較多,理解起來可能有點困難,嘗試著拆分開,然后再組合起來會更容易理解。
這個案例如果能學會,以后查找其他東西,簡直就是小意思。

