Excel中最常用的查找函數(shù)無非就是VLOOKUP和LOOKUP,VLOOKUP函數(shù)可以做到的用LOOKUP函數(shù)也可以做到,VLOOKUP函數(shù)不能做到的LOOKUP函數(shù)卻可以做到。所以今天要跟大家分享的是LOOKUP函數(shù)的經(jīng)典查找方式。
一、LOOKUP函數(shù)用法。
LOOKUP函數(shù)有2種語法形式:向量法和數(shù)組法。今天講的是向量法。
向量語法形式:LOOKUP(lookup_value,lookup_vector,[result_vector])。
各參數(shù)含義:
lookup_value:要查找的值??梢詾閿?shù)字、文本、邏輯值或包含數(shù)值的名稱或引用。
lookup_vector:只包含一行或一列的區(qū)域。可以為文本、數(shù)值或邏輯值。若為數(shù)值,必須升序排序,否則,不能返回正確的結(jié)果。若為文本,則不區(qū)分大小寫。
result_vector:只包含一行或一列的區(qū)域。區(qū)域大小必須跟lookup_vector一致。
二、LOOKUP函數(shù)模糊查找實例運用。
模糊查找要求LOOKUP函數(shù)第2個參數(shù)必須按生序排序,否則不能返回正確的結(jié)果。下圖中
表1已經(jīng)對編號做了升序排序處理,表2沒有排序。
要求:分別在2個表中查找編號對應(yīng)的訂單號。
步驟:在下圖中的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張圖片,我們發(fā)現(xiàn)F15、F162個單元格的查找結(jié)果是不正確的,這是為什么呢?這是因為我們一開始所說的lookup_vector必須升序,否則就會出現(xiàn)上圖所看到的結(jié)果。
那么,很多情況下我們并不能對數(shù)據(jù)做升序排序,在lookup_vector沒有排序的情況下,我們怎樣才能查找到正確的結(jié)果呢?下面就是我要跟大家講解的重點,采用LOOKUP函數(shù)經(jīng)典語法來解決,該語法如下:
LOOKUP(1,0/(條件),查找區(qū)域或數(shù)組)
如果條件有多個,語法如下所示:
LOOKUP(1,0/((條件1)*(條件2)*(條件3)*...*(條件N)),查找區(qū)域或數(shù)組)
語法中的1和0分別表示什么?首先,0/(條件)中的“條件”是一組邏輯值或由邏輯值運算得到的由TRUE和FALSE組成的數(shù)組,因此:0/(條件)相當于構(gòu)建一個由0和錯誤值#DIV/0組成的數(shù)組。如果條件為真,返回TRUE,條件為假,返回FALSE,0/(條件)相當于0/TRUE=0,0/FALSE=#DIV/0。整個公式的意思是:要在一個由0和錯誤值#DIV/0組成的數(shù)組中查找1,很明顯找不到,那就返回最接近于1的值,也就是0,用大于0的數(shù)值來查找0,肯定可以查找最后一個滿足條件的。
所以不管有沒有排序,利用LOOKUP函數(shù)的經(jīng)典語法,下圖中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)”。
這樣子不管數(shù)據(jù)源有沒有排序,用了上面的語法,結(jié)果都是正確的。這就是這期教程跟大家講解的重點,記住模板語法“LOOKUP(1,0/((條件1)*(條件2)*(條件3)*...*(條件N)),查找區(qū)域或數(shù)組)”,理解語法中1和0的含義,以后就可直接套用這條公式,學起來吧!