2014年的某一天盧子(@Excel之戀)在微博發(fā)了一個VLOOKUP函數的運用,引來33萬的閱讀量,860次的轉發(fā),可見大家對VLOOKUP函數的愛有多深。后面會重點介紹這個函數的用法,這里只做簡單的說明。 既然這里提到了2014年,就順便以IT部落窩的人員作為數據源,作為查找依據,曾經這些人也為IT部落窩做出了很多貢獻。如圖5-12所示,根據員工姓名,查找職務。
數據查找,首推VLOOKUP函數。 =VLOOKUP(E2,B:C,2,0) VLOOKUP的作用就是:查找某個值,在區(qū)域中的對應值,返回區(qū)域中第幾列,正常情況下都是精確查找,也就是最后一個參數設置為0。 正常順序查找,VLOOKUP函數很好用,如果要逆序查找就相對比較麻煩,這時他的兄弟LOOKUP函數就派上用場。LOOKUP函數不區(qū)分正常順序跟逆序,如圖5-13所示,根據員工姓名,查找員工號,用在這里再合適不過。
LOOKUP函數有一個經典查找公式,這里先記住,至于怎么得到的,暫時可以不用管。 =LOOKUP(1,0/((條件1)*(條件2)*…*(條件n)),返回區(qū)域) 根據這條公式,我們可以得到 =LOOKUP(1,0/(E2=B2:B10),A2:A10) 如果公式要下拉的話,記得區(qū)域加絕對引用。如果還不會加的朋友可以去看《4.4 相對引用、絕對引用、混合引用》。 既然提到論壇的朋友,怎么可以將真正的朋友忘記,下面來看OFFSET函數之盧子訪友。 盧子有三個朋友:無言、安安、胖紙,朋友間就得互相來往。每個朋友的距離都挺遠,盧子住在潮州,無言離盧子最近,在汕頭那邊,安安次之在深圳,胖紙最遠在東莞。同屬廣東,坐車半天內都能到。如圖5-14所示。
假如OFFSET函數就是盧子的車,要如何去到每個朋友哪里? 有人說過OFFSET函數會輕功,那速度當然不比車子慢。先來看看語法: =OFFSET(起點,偏移行,偏移列,行高,列寬) 注:行高、列寬為可選參數。 盧子要去無言那邊,只需向右坐2站就到。 =OFFSET(A1,0,2) 如果要去安安那邊,只需向下坐5站才能到。 =OFFSET(A1,5,0) 去胖紙那邊就稍微麻煩點,要向下坐6站,再向右坐1站才能到。 =OFFSET(A1,6,1) 看到這里大概知道OFFSET函數是干嘛用的,如果偏移的行數為正數就是向下偏移,偏移的列數為正數就是向右偏移。相反,如果偏移的行數為負數就是向上偏移,偏移的列數為負數就是向左偏移。 假如盧子現在在胖紙家里,想要回到自己的家。就得向上坐6站,就是-6,向左坐1站,也就是-1。 =OFFSET(A1,-6,-1) 既然知道怎么去,就得知道怎么回,盧子還不至于路癡到忘記回來的路。 安安跟胖紙離得很近,盧子想知道她們兩家合并的范圍有多大,也就是深圳跟東莞的范圍。盧子就得先到安安這里,然后將這里的行高設置為2,列寬設置為2,這樣就知道這兩地的范圍。 =OFFSET(A1,5,0,2,2) 但這個只是劃分個范圍,沒有統計,統計可以用COUNTA,得到這兩地的范圍為4。 =COUNTA(OFFSET(A1,5,0,2,2)) 訪友總不能兩手空空,至少買點水果表示下吧。如圖5-15所示,水果種類很多,有蘋果、香蕉等等,每一種的單價都是不同的。
現在要獲取區(qū)域中第3行,第2列的對應值,就可以用,得到3.4。 =INDEX(A1:C10,3,2) 想知道A列第3行的對應水果,就可以用,得到香蕉。 =INDEX(A1:A10,3) 第1行第2列的對應值,就可以用,得到單價。 =INDEX(A1:C1,2) 摸清了水果的情況,才好挑選。不過對于盧子而言,很多時候都只是知道大概要買什么而已,沒有實際概念。假如現在要獲取最后5種水果的情況,怎么辦? 一般情況下記錄都是隨時增加的,你不可能去數下哪幾條是最后的,數到的數據即使現在可以,過幾天就行不通了。最后一條非空記錄的行號,可以用COUNTA函數,這個就是統計非空單元格的個數。 =COUNTA(A:A) 現在知道非空一共有10條,那最后5條記錄就是,10,9,8,7,6。一般情況下連續(xù)數字首先考慮到的就是ROW函數。 =COUNTA(A:A)-ROW(A1) 這樣就可以得到9-6這4條記錄,但缺少第1條記錄,也就是說在第1行的時候只能減去0。 =COUNTA(A:A)-ROW(A1)+1 現在已經知道行號,只需嵌套個INDEX函數就可以。如圖5-16所示。
但有的人覺得還是按原來順序排序好,記錄顯示是6-10。也就是第1行減去4,第2行減去3……這時只需做小小的變形就行。 =COUNTA(A:A)-5+ROW(A1) 現在就得到6-10,再重新嵌套INDEX函數。 =INDEX(A:A,COUNTA(A:A)-5+ROW(A1)) 如果想要改成引用A:C這種區(qū)域的形式,可以用: =INDEX($A:$C,COUNTA(A:A)-5+ROW(A1),COLUMN(A1)) 公眾號ID:exceljiaocheng |
|