學會LOOKUP的牛掰套路,都挺好


學會LOOKUP的牛掰套路,都挺好

說起查找引用類函數,很多小夥伴們會先想到大眾情人VLOOKUP函數,但在實際應用中,很多時候VLOOKUP卻是力不從心:比如說從指定位置查找、多條件查找、逆向查找等等。

這些VLOOKUP函數實現起來頗有難度的功能,有一個函數卻可以輕易實現,這就是今天咱們要說的女一號——LOOKUP。

這個函數主要用於在查找範圍中查詢指定的查找值,並返回另一個範圍中對應位置的值。該函數支持忽略空值、邏輯值和錯誤值來進行數據查詢,幾乎可以完成VLOOKUP函數和HLOOKUP函數的所有查找任務,接下來咱們就一起看看LOOKUP函數的常用套路。

一、返回B列最後一個文本:

=LOOKUP("々",B:B)

或是=LOOKUP("做",B:B)

學會LOOKUP的牛掰套路,都挺好


二、返回B列最後一個數值:

=LOOKUP(9E+307,B:B)

學會LOOKUP的牛掰套路,都挺好

用編碼較大的文本和非常大的數值來作為查找值,如果在查詢區域中找不到對應的內容,會以比查找值小的最接近值進行匹配,同時要求查找區域是升序排序的。實際操作時,即便沒有按升序排序,LOOKUP也會按已經升序進行處理,也就是越後面的字符比前面的越大。這樣就返回最後一個數字或是文字了。


三、填充合併單元格

如下圖所示,B列姓名使用了合併單元格,使用以下公式可以得到完整的填充:

=LOOKUP("做",B$2:B2)

學會LOOKUP的牛掰套路,都挺好

四、返回A列最後一個非空單元格內容

=LOOKUP(1,0/(A:A<>""),A:A)

學會LOOKUP的牛掰套路,都挺好

簡單說說公式的計算過程:

先使用A:A<>""判斷A列是否不等於空單元格,得到一組有邏輯值TRUE和FALSE構成的內存數組。

然後用0除以這些邏輯值,在四則運算中,邏輯值TRUE相當於1,FALSE相當於0,相除之後,得到由錯誤值和0構成的新內存數組。其中的0,就是0/TRUE的結果,表示符合條件。

最後用1作為查找值,在這個內存數組中找到0的位置,並返回第三參數中對應位置的內容。

如果有多個符合條件的記錄,LOOKUP默認以最後一個進行匹配。


五、逆向查詢

如下圖,要根據E3單元格的商品名稱,查詢對應的銷售經理。公式為:

=LOOKUP(1,0/(C2:C10=E3),A2:A10)

學會LOOKUP的牛掰套路,都挺好

單條件查詢的模式化寫法為:

=LOOKUP(1,0/(條件區域=條件),查詢區域)


六、多條件查詢

如下圖,要根據F3單元格的商品名稱和G3單元格的部門,查詢對應的銷售經理。公式為:

=LOOKUP(1,0/((D2:D10=F3)*(B2:B10=G3)),A2:A10)

學會LOOKUP的牛掰套路,都挺好

多條件查詢的模式化寫法為:

=LOOKUP(1,0/((條件區域1=條件1)*(條件區域2=條件2)),查詢區域)


七、模糊查詢等級

如下圖,要根據B列銷售業績返回對應的評定標準,E~F列為標準對照表。

C2單元格公式為:

=LOOKUP(B2,$E$3:$F$6)

學會LOOKUP的牛掰套路,都挺好

這種方法可以取代IF函數完成多個區間的判斷查詢,前提是對照表的首列必須是升序處理。


八、提取有規律的數字

如下圖,要提取出B列混合內容中的數值。

公式為:

=-LOOKUP(1,-RIGHT(B2,ROW($1:$9)))

學會LOOKUP的牛掰套路,都挺好

本例中,數值都位於右側,因此先用RIGHT函數從B2單元格右起第一個字符開始,依次提取長度為1至99的字符串。

添加負號後,數值轉換為負數,含有文本字符的字符串則變成錯誤值。

LOOKUP函數使用1作為查詢值,在由負數、0和錯誤值構成的數組中,忽略錯誤值提取最後一個等於或小於1的數值。最後再使用負號,將提取出的負數轉為正數。


九、帶合併單元格的查詢

如下圖,根據D2單元格的姓名查詢A列對應的部門。

公式為:

=LOOKUP("做",INDIRECT("A1:A"&MATCH(D2,B1:B10,0)))

學會LOOKUP的牛掰套路,都挺好

MATCH(D2,B1:B10,0)部分,精確查找D2單元格的姓名在B列中的位置。返回結果為7。

用字符串"A1:A"連接MATCH函數的計算結果7,變成新字符串"A1:A7"。

接下來,用INDIRECT函數返回文本字符串"A1:A7"的引用。

如果MATCH函數的計算結果是5,這裡就變成"A1:A5"。同理,如果MATCH函數的計算結果是10,這裡就變成"A1:A10"。也就是這個引用區域會根據D2姓名在B列中的位置動態調整。

最後用=LOOKUP("做",引用區域)返回該區域中最後一個文本的內容。

簡化後的公式相當於:

=LOOKUP("做",A1:A7)

返回A1:A7單元格區域中最後一個文本,也就是江北公司,得到“蘇明哲”所在的部門。


3.4日-3.14日,京東科技類圖書滿100減50

學會LOOKUP的牛掰套路,都挺好



分享到:


相關文章: