今天要和表親們分享的,是有關VLOOKUP函數的一個小技巧。
VLOOKUP函數号稱函數家族中的大衆情人,是簡單又實用的函數之一,大家對它想必均是十分熟悉了。
不過,您真的了解他或者她的心嗎?
這裡有一道有趣的題目,親們不妨來玩一下。
題目便是如圖片所描述的,按照重複次數的要求,重複相關班級名稱,結果放入E列。
函數了得的表親,也許會立刻想起一個多維數組套路。但我們這裡隻想VLOOKUP函數。如果用VLOOKUP函數,應該怎麼做?
很簡單。隻需要兩步。
第一步,A2輸入公式:=A1+B2,向下填充。
第二步,E2輸入公式:=IFERROR(VLOOKUP(ROW(A1),A:C,3,0),E3) & "" ,向下拖動。
(收錄注:如果使用的是Excel2003,把上面公式改為=IF(ISERROR(VLOOKUP(ROW(A1),A:C,3,0)),E3,VLOOKUP(ROW(A1),A:C,3,0)))& ""
然後……奇迹發生的時刻——
哎呦喂!
為什麼醬紫?
發生了神馬事?
難道咱們真不了解VLOOKUP函數的心?
包不同大爺插話:非也非也非非非也。
我們通過兩個公式,來了解下其中的訣竅。
第一個公式:=A1+B2,是計算相關次數的累計值,比較好理解。
第二個公式:=IFERROR(VLOOKUP(ROW(A1),A:C,3,0),E3)&””
看起來是常用的VLOOKUP套路,但其實有兩個很有意思的地方。
其一,VLOOKUP部分——VLOOKUP(ROW(A1),A:C,3,0)——VLOOKUP的查找值是ROW(A1)。即在公式的下拉過程中,在A:C的範圍内,通過查找1,2,3,4,5,……來返回該數值所對應的C列結果。
其二,屏蔽VLOOKUP錯誤值的方式。如果VLOOKUP查找不到相關數值,比如此例中的1和2,通常會返回錯誤值#N/A,但我們通過IFERROR,使它返回公式所在單元格的下一個單元格的值。
比如,我們在E2輸入公式,VLOOKUP函數的錯誤值則返回E3,公式向下拖動,E3的錯誤值返回E4……依次類推,直至VLOOKUP函數返回正确值——則之前通過IFERROR函數判斷為錯誤值的單元格,自然統一更新為相應的正确值(……腦海裡開始播放多米諾骨牌從依次跌倒到依次站起的畫面)
然後再進行新一輪循環判斷、數據更正。
最後的&””,是函數裡常用的屏蔽零值的技法,以便在VLOOKUP公式
下拉過界時,返回的零值顯示為空白。
以上兩個公式,除了VLOOKUP(ROW(A1)……)的技巧外,我們還利用了函數的另外一個技巧,我們姑且稱之為上下其手。
何謂上下其手?簡而言之,便是拿公式所在單元格的上下單元格結果為己用。
第一個公式,=A1+B2,是上手,很多表親比較熟悉常用,甚為了解。
第二個公式,=IFERROR(VLOOKUP(ROW(A1),A:C,3,0),E3)&"",是下手,表親們用的可能就比較少了。因為少用,所以大概才顯得格外有意思。諸位親閑暇時,不妨琢磨琢磨此中竅門,興許别有收獲哦。
帖子的最後留個大家兩個小問題,依然是關于這道小題的。
其一,如果用輔助列,使用LOOKUP函數,應該怎麼做?
其二,如果不用輔助列,依然使用VLOOKUP函數,應該怎麼做?
有話要說...