當前位置: 妍妍網 > 辦公

哪位高人發現Vlookup函式這個用法,太變態了....

2024-04-01辦公

前言: 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集 。( 綠卡會員 有效期內 免費 )詳情點選下方連結