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ù)模糊查找實(shí)例運(yùn)用。 模糊查找要求LOOKUP函數(shù)第2個(gè)參數(shù)必須按生序排序,否則不能返回正確的結(jié)果。下圖中 表1已經(jīng)對(duì)編號(hào)做了升序排序處理,表2沒有排序。 要求:分別在2個(gè)表中查找編號(hào)對(duì)應(yīng)的訂單號(hào)。 步驟:在下圖中的C15單元格中輸入公式“=LOOKUP(B15,$B$3:$B$12,$C$3:$C$12)”,按回車鍵,然后下拉公式至C17單元格。 在下圖中的F15單元格中輸入公式“=LOOKUP(E15,$E$3:$E$12,$F$3:$F$12)”,按回車鍵,然后下拉公式至F17單元格。 對(duì)比上面2張圖片,我們發(fā)現(xiàn)F15、F162個(gè)單元格的查找結(jié)果是不正確的,這是為什么呢?這是因?yàn)槲覀円婚_始所說的lookup_vector必須升序,否則就會(huì)出現(xiàn)上圖所看到的結(jié)果。 那么,很多情況下我們并不能對(duì)數(shù)據(jù)做升序排序,在lookup_vector沒有排序的情況下,我們?cè)鯓硬拍懿檎业秸_的結(jié)果呢?下面就是我要跟大家講解的重點(diǎn),采用LOOKUP函數(shù)經(jīng)典語法來解決,該語法如下: LOOKUP(1,0/(條件),查找區(qū)域或數(shù)組) 如果條件有多個(gè),語法如下所示: LOOKUP(1,0/((條件1)*(條件2)*(條件3)*...*(條件N)),查找區(qū)域或數(shù)組) 語法中的1和0分別表示什么?首先,0/(條件)中的“條件”是一組邏輯值或由邏輯值運(yùn)算得到的由TRUE和FALSE組成的數(shù)組,因此:0/(條件)相當(dāng)于構(gòu)建一個(gè)由0和錯(cuò)誤值#DIV/0組成的數(shù)組。如果條件為真,返回TRUE,條件為假,返回FALSE,0/(條件)相當(dāng)于0/TRUE=0,0/FALSE=#DIV/0。整個(gè)公式的意思是:要在一個(gè)由0和錯(cuò)誤值#DIV/0組成的數(shù)組中查找1,很明顯找不到,那就返回最接近于1的值,也就是0,用大于0的數(shù)值來查找0,肯定可以查找最后一個(gè)滿足條件的。 所以不管有沒有排序,利用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é)果都是正確的。這就是這期教程跟大家講解的重點(diǎn),記住模板語法“LOOKUP(1,0/((條件1)*(條件2)*(條件3)*...*(條件N)),查找區(qū)域或數(shù)組)”,理解語法中1和0的含義,以后就可直接套用這條公式,學(xué)起來吧! |
|