Hello,大家好,今天我們來解決一個vlookup的痛點,相信很多人都遇到過,先來看下今天的例子,如下圖所示,當我們需要查找多列結果的時候,隻能使用vlookup來一列一列的查找,非常的耗費時間,那麼有沒有什麼方法能使用一次vlookup就能找到所有的結果呢?當然有了,今天就跟大家分享下解決方法
一、觀察公式差異
首先我們先來觀察下公式的差異,分别查找下李白的籍貫與性别,看下這2個公式的差異有哪些,以便總結規律
查找籍貫公式為:=VLOOKUP(D13,$A$1:$K$10,6,FALSE)
查找性别公式為:=VLOOKUP(D13,$A$1:$K$10,7,FALSE)
通過觀察我們可以發現,這2個公式的唯一不同的隻有第三參數,vlookup第三參數的作用是查找結果所在的列數,如果我們可以自動的獲取vlookup的第三參數,就可以實現利用1次vlookup就能查找的所有的結果,想要實現這個效果我們需要用到match函數
二、match函數的使用方法
Match函數:返回數值在數組區域中的位置
語法:=MATCH(lookup_value, lookup_array, [match_type])
第一參數:查找值
第二參數:查找的數據區域
第三參數:匹配類型,在這裡我們直接寫0即可,0就表示精确匹配
說白了match函數的作用就是查找數據的位置,在這裡我們需要利用match找一下查找項目在數據源表頭中的位置,比如在這裡我們查找一下籍貫在數據源表頭中的位置,隻需要将公式設置為:=MATCH(E13,A1:K1,0)即可,他的結果正好是6,這樣的我們就可以将match函數嵌套進vlookup的第三參數中,達到自動獲取第三參數的效果
跟大家簡單的講解下這個公式的計算過程,公式為:=MATCH(E13,A1:K1,0)
第一參數:E13 ,就是查找值,在這裡它對應的值為籍貫
第二參數:A1:K1。就是查找的數據區域,它對應數據源表頭這個區域
第三參數:0,表示精确匹配
Match函數的作用是查找數據的位置,在數據源表頭的這個區域中,籍貫在第6個位置,所以函數的結果就是6,這個就是函數的計算過程
三、嵌套公式前面已經說了,我們隻需要将match函數嵌套進vlookup的第三參數中即可使用1次函數查找多列結果,因為我們需要拖動填充函數,還需要設置相應的單元格引用方式,在這裡我們需要在E14單元格中将公式設置為: =VLOOKUP($D14,$A$1:$K$10,MATCH(E$13,$A$1:$L$1,0),FALSE),然後向右拖動,向下填充即可找到所有的結果,下面跟大家簡單的講解下這個公式的參數
這個公式主體上是一個vlookup函數,在vlookup函數中嵌套了一個match函數,所以我們先來看下vlookup函數的參數
第一參數:$D14,查找值,需要注意的是在這裡需要鎖定字母标号
第二參數:$A$1:$K$10,查找區域,需要注意的是查找區域進行絕對引用
第三參數:MATCH(E$13,$A$1:$L$1,0),返回的結果列,用mtach來自動獲取
第四參數:false,表示精确匹配
随後再來看下match函數的參數
公式:MATCH(E$13,$A$1:$L$1,0)
第一參數:E$13,查找值,在這裡需要鎖定數字标号
第二參數:$A$1:$L$1,查找的數據區域,表頭所在的數據區域,需要絕對引用
第三參數:0,表示精确匹配
以上就是這個公式的所有參數,我們隻不過是把match函數放進了vlookup函數的第三參數中,讓它幫助我們自動的獲取第三參數罷了,因為需要拖動函數,還需要特别注意數據的引用方式,大家可以動手試一下,還是比較簡單的。
以上就是今天分享的全部内容,我是Excel從零到一,關注我,持續分享更多Excel技巧,