說(shuō)起查找引用類函數(shù),很多小伙伴們會(huì)先想到大眾情人VLOOKUP函數(shù),但在實(shí)際應(yīng)用中,很多時(shí)候VLOOKUP卻是力不從心:比如說(shuō)從指定位置查找、多條件查找、逆向查找等等。 這些VLOOKUP函數(shù)實(shí)現(xiàn)起來(lái)頗有難度的功能,有一個(gè)函數(shù)卻可以輕易實(shí)現(xiàn),這就是今天咱們要說(shuō)的女一號(hào)——LOOKUP。 這個(gè)函數(shù)主要用于在查找范圍中查詢指定的查找值,并返回另一個(gè)范圍中對(duì)應(yīng)位置的值。該函數(shù)支持忽略空值、邏輯值和錯(cuò)誤值來(lái)進(jìn)行數(shù)據(jù)查詢,幾乎可以完成VLOOKUP函數(shù)和HLOOKUP函數(shù)的所有查找任務(wù),接下來(lái)咱們就一起看看LOOKUP函數(shù)的常用套路。 一、返回B列最后一個(gè)文本: =LOOKUP("々",B:B) 或是=LOOKUP("做",B:B) 二、返回B列最后一個(gè)數(shù)值: =LOOKUP(9E+307,B:B) 三、填充合并單元格 如下圖所示,B列姓名使用了合并單元格,使用以下公式可以得到完整的填充: =LOOKUP("做",B$2:B2) 四、返回A列最后一個(gè)非空單元格內(nèi)容 =LOOKUP(1,0/(A:A<>""),A:A) 簡(jiǎn)單說(shuō)說(shuō)公式的計(jì)算過(guò)程: 先使用A:A<>""判斷A列是否不等于空單元格,得到一組有邏輯值TRUE和FALSE構(gòu)成的內(nèi)存數(shù)組。 然后用0除以這些邏輯值,在四則運(yùn)算中,邏輯值TRUE相當(dāng)于1,F(xiàn)ALSE相當(dāng)于0,相除之后,得到由錯(cuò)誤值和0構(gòu)成的新內(nèi)存數(shù)組。其中的0,就是0/TRUE的結(jié)果,表示符合條件。 最后用1作為查找值,在這個(gè)內(nèi)存數(shù)組中找到0的位置,并返回第三參數(shù)中對(duì)應(yīng)位置的內(nèi)容。 如果有多個(gè)符合條件的記錄,LOOKUP默認(rèn)以最后一個(gè)進(jìn)行匹配。 五、逆向查詢 如下圖,要根據(jù)E3單元格的商品名稱,查詢對(duì)應(yīng)的銷售經(jīng)理。公式為: =LOOKUP(1,0/(C2:C10=E3),A2:A10) 單條件查詢的模式化寫法為: =LOOKUP(1,0/(條件區(qū)域=條件),查詢區(qū)域) 六、多條件查詢 如下圖,要根據(jù)F3單元格的商品名稱和G3單元格的部門,查詢對(duì)應(yīng)的銷售經(jīng)理。公式為: =LOOKUP(1,0/((D2:D10=F3)*(B2:B10=G3)),A2:A10) 多條件查詢的模式化寫法為: =LOOKUP(1,0/((條件區(qū)域1=條件1)*(條件區(qū)域2=條件2)),查詢區(qū)域) 七、模糊查詢等級(jí) 如下圖,要根據(jù)B列銷售業(yè)績(jī)返回對(duì)應(yīng)的評(píng)定標(biāo)準(zhǔn),E~F列為標(biāo)準(zhǔn)對(duì)照表。 C2單元格公式為: =LOOKUP(B2,$E$3:$F$6) 這種方法可以取代IF函數(shù)完成多個(gè)區(qū)間的判斷查詢,前提是對(duì)照表的首列必須是升序處理。 八、提取有規(guī)律的數(shù)字 如下圖,要提取出B列混合內(nèi)容中的數(shù)值。 公式為: =-LOOKUP(1,-RIGHT(B2,ROW($1:$9))) 本例中,數(shù)值都位于右側(cè),因此先用RIGHT函數(shù)從B2單元格右起第一個(gè)字符開始,依次提取長(zhǎng)度為1至99的字符串。 添加負(fù)號(hào)后,數(shù)值轉(zhuǎn)換為負(fù)數(shù),含有文本字符的字符串則變成錯(cuò)誤值。 LOOKUP函數(shù)使用1作為查詢值,在由負(fù)數(shù)、0和錯(cuò)誤值構(gòu)成的數(shù)組中,忽略錯(cuò)誤值提取最后一個(gè)等于或小于1的數(shù)值。最后再使用負(fù)號(hào),將提取出的負(fù)數(shù)轉(zhuǎn)為正數(shù)。 九、帶合并單元格的查詢 如下圖,根據(jù)D2單元格的姓名查詢A列對(duì)應(yīng)的部門。 公式為: =LOOKUP("做",INDIRECT("A1:A"&MATCH(D2,B1:B10,0))) MATCH(D2,B1:B10,0)部分,精確查找D2單元格的姓名在B列中的位置。返回結(jié)果為7。 用字符串"A1:A"連接MATCH函數(shù)的計(jì)算結(jié)果7,變成新字符串"A1:A7"。 接下來(lái),用INDIRECT函數(shù)返回文本字符串"A1:A7"的引用。 如果MATCH函數(shù)的計(jì)算結(jié)果是5,這里就變成"A1:A5"。同理,如果MATCH函數(shù)的計(jì)算結(jié)果是10,這里就變成"A1:A10"。也就是這個(gè)引用區(qū)域會(huì)根據(jù)D2姓名在B列中的位置動(dòng)態(tài)調(diào)整。 最后用=LOOKUP("做",引用區(qū)域)返回該區(qū)域中最后一個(gè)文本的內(nèi)容。 簡(jiǎn)化后的公式相當(dāng)于: =LOOKUP("做",A1:A7) 返回A1:A7單元格區(qū)域中最后一個(gè)文本,也就是江北公司,得到“蘇明哲”所在的部門。 |
|
來(lái)自: hercules028 > 《excel》