Excel中最常用的查找函數無非就是VLOOKUP和LOOKUP,VLOOKUP函數可以做到的用LOOKUP函數也可以做到,VLOOKUP函數不能做到的LOOKUP函數卻可以做到。所以今天要跟大家分享的是LOOKUP函數的經典查找方式。
一、LOOKUP函數用法。
LOOKUP函數有2種語法形式:向量法和數組法。今天講的是向量法。
向量語法形式:LOOKUP(lookup_value,lookup_vector,[result_vector])。
各參數含義:
lookup_value:要查找的值。可以為數字、文本、邏輯值或包含數值的名稱或引用。
lookup_vector:隻包含一行或一列的區域。可以為文本、數值或邏輯值。若為數值,必須升序排序,否則,不能返回正确的結果。若為文本,則不區分大小寫。
result_vector:隻包含一行或一列的區域。區域大小必須跟lookup_vector一緻。
二、LOOKUP函數模糊查找實例運用。
模糊查找要求LOOKUP函數第2個參數必須按生序排序,否則不能返回正确的結果。下圖中
表1已經對編号做了升序排序處理,表2沒有排序。
要求:分别在2個表中查找編号對應的訂單号。
步驟:在下圖中的C15單元格中輸入公式“=LOOKUP(B15,$B$3:$B$12,$C$3:$C$12)”,按回車鍵,然後下拉公式至C17單元格。
在下圖中的F15單元格中輸入公式“=LOOKUP(E15,$E$3:$E$12,$F$3:$F$12)”,按回車鍵,然後下拉公式至F17單元格。
對比上面2張圖片,我們發現F15、F162個單元格的查找結果是不正确的,這是為什麼呢?這是因為我們一開始所說的lookup_vector必須升序,否則就會出現上圖所看到的結果。
那麼,很多情況下我們并不能對數據做升序排序,在lookup_vector沒有排序的情況下,我們怎樣才能查找到正确的結果呢?下面就是我要跟大家講解的重點,采用LOOKUP函數經典語法來解決,該語法如下:
LOOKUP(1,0/(條件),查找區域或數組)
如果條件有多個,語法如下所示:
LOOKUP(1,0/((條件1)*(條件2)*(條件3)*...*(條件N)),查找區域或數組)
語法中的1和0分别表示什麼?首先,0/(條件)中的“條件”是一組邏輯值或由邏輯值運算得到的由TRUE和FALSE組成的數組,因此:0/(條件)相當于構建一個由0和錯誤值#DIV/0組成的數組。如果條件為真,返回TRUE,條件為假,返回FALSE,0/(條件)相當于0/TRUE=0,0/FALSE=#DIV/0。整個公式的意思是:要在一個由0和錯誤值#DIV/0組成的數組中查找1,很明顯找不到,那就返回最接近于1的值,也就是0,用大于0的數值來查找0,肯定可以查找最後一個滿足條件的。
所以不管有沒有排序,利用LOOKUP函數的經典語法,下圖中C15單元格的公式可改成“=LOOKUP(1,0/(B15=$B$3:$B$12),$C$3:$C$12)”。
F15單元格的公式可改成“=LOOKUP(1,0/(E15=$E$3:$E$12),$F$3:$F$12)”。
這樣子不管數據源有沒有排序,用了上面的語法,結果都是正确的。這就是這期教程跟大家講解的重點,記住模闆語法“LOOKUP(1,0/((條件1)*(條件2)*(條件3)*...*(條件N)),查找區域或數組)”,理解語法中1和0的含義,以後就可直接套用這條公式,學起來吧!
關注我,每天都可以讓您學到一個實用的辦公技巧!
覺得文章對您有幫助,可以任意贊賞,轉發,點贊,有問題可在評論區直接留言!
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!