前言:
Vlookup函式公式也許你見過很多,但本文涉及的用法蘭色是第一次見,耐心看完,你肯定會有收獲的。
昨天蘭色開啟一位網友的Excel表格,頓時被他寫的Vlookup長公式驚呆了:
=IF(E2>=VLOOKUP(A2,數據!$A$2:$O$4,2,0),VLOOKUP(A2,數據!$A$2:$O$4,3,0),IF(E2>=VLOOKUP(A2,數據!$A$2:$O$4,4,0),VLOOKUP(A2,數據!$A$2:$O$4,5,0),IF(E2>=VLOOKUP(A2,數據!$A$2:$O$4,6,0),VLOOKUP(A2,數據!$A$2:$O$4,7,0),IF(E2>=VLOOKUP(A2,數據!$A$2:$O$4,8,0),VLOOKUP(A2,數據!$A$2:$O$4,9,0),IF(E2>=VLOOKUP(A2,數據!$A$2:$O$4,10,0),VLOOKUP(A2,數據!$A$2:$O$4,11,0),IF(E2>=VLOOKUP(A2,數據!$A$2:$O$4,12,0),VLOOKUP(A2,數據!$A$2:$O$4,13,0),IF(E2>=VLOOKUP(A2,數據!$A$2:$O$4,14,0),VLOOKUP(A2,數據!$A$2:$O$4,15,0),1%)))))))
上面公式的作用,是根據上圖中
E
列的單價從另一個表中尋找對應的個人提成比例。尋找要分兩步:
1、根據A列的產品產程式碼從【數據】表找到對應行數, 如下圖所示第4行。
2、然後根據單價尋找所在的區間
(
如下圖所示H4單元格
209
比
216小
而且最接近)
,然後再找到對應的提成比例
2.50%
。
(提示:點選下圖可以放大圖片)
看上去好象沒什麽好辦法,7種價格和對應提成,需要分別用Vlookup尋找並逐一對比,然後找到最接近的價格並獲取提成比率。於是就有了開頭那位同學的長長的Vlookup函式公式。
有沒有什麽簡單公式?
有:
=LOOKUP(E2, VLOOKUP(A2,數據!A:O,(8-ROW($1:$7))*2+{0,1},0) )
公式很短,但估計很多人看到這個公式很懵,因為這裏要用到Vlookup函式鮮為人知的重組數據技巧。下面蘭色就拆分開,一步步分析這個公式的原理:
蘭色以前介紹過利用VLOOKUP函式隔列求和的技巧,本例就可以用這個思路把所有7個價格全提取出來。
=VLOOKUP(A7,A:O, ROW(1:7)*2 ,0)
註: ROW(1:7)*2 結果是一組數位,所以它作為Vlookup函式第3個參數後,結果也會返回同樣數量的值,即所有的價格。如下圖B7單元格公式結果所示
本例中需要區間尋找對應的最接近價格,所以要用到lookup函式,只是lookup的第二個參數需要按
升
序列,而上面圖中結果是
降
序,所以Vlookup公式還需要改一下。
=VLOOKUP(A7,A:O, (8-ROW(1:7)) *2,0)
註:原來是1234567,用8減後就變成了7654321了。隔取數後也升序排列了。
因為本例最終要返回單價對應的提成比例,所以還需要把提成比例也提取出來。
=VLOOKUP(A7,A:O,(8-ROW(1:7))*2+ {0,1}, 0)
註: {0,1} 中的 0 是指提取價格時列數 +0 , 1 是提取提成率時列數 +1 ,而最終要得到兩列的一組數,所以這裏用了陣列形式。上面公式最結結果如下圖B7:C13區域所示。
用Vlookup函式把價格、提成率組成成了按升序排列的兩列陣列,余下的就是lookup的基本用法了:
從後向前尋找比單價小且最接近的值
。即本文開頭公式:
= LOOKUP(E2, VLOOKUP(A2,數據!A:O,(8-ROW($1:$7))*2+{0,1},0) )
蘭色說 :今天發現的這個用法,重新整理了蘭色對 Vlookup 的認知,也是它最牛用法之一。Vlookup函式套用大全的教程看來也要重寫一次了 。 另:原創不易,覺得本文有用的同學記得點右下角大拇指和在看支持一下蘭色。
蘭色根據多年經驗,錄制了一全套適合新手和初中級階段使用者學習的Excel教程。包括 Excel表格88個函式用法( 即將更新幾十個新函式 )、119個使用技巧、透視表從入門到精通50集、圖表從入門到精通186集 。( 綠卡會員 有效期內 免費 )詳情點選下方連結