作者:祝洪忠 轉自:Excel之家ExcelHome
說起查找引用類函數,很多小夥伴們會先想到大衆情人VLOOKUP函數,但在實際應用中,很多時候VLOOKUP卻是力不從心:比如說從指定位置查找、多條件查找、逆向查找等等。
這些VLOOKUP函數實現起來頗有難度的功能,有一個函數卻可以輕易實現,這就是下面咱們要說的主角——LOOKUP。
這個函數主要用于在查找範圍中查詢指定的查找值,并返回另一個範圍中對應位置的值。該函數支持忽略空值、邏輯值和錯誤值來進行數據查詢,幾乎可以完成VLOOKUP函數和HLOOKUP函數的所有查找任務,接下來咱們就一起看看LOOKUP函數的常用套路。
一、返回B列最後一個文本:
=LOOKUP("々",B:B)
或是
=LOOKUP("做",B:B)
二、返回B列最後一個數值:
=LOOKUP(9E 307,B:B)
三、填充合并單元格
如下圖所示,B列姓名使用了合并單元格,使用以下公式可以得到完整的填充:
=LOOKUP("做",B$2:B2)
四、返回B列最後一個非空單元格内容
=LOOKUP(1,0/(B:B<>""),B:B)
簡單說說公式的計算過程:
先使用B:B<>""判斷B列是否不等于空單元格,得到一組有邏輯值TRUE和FALSE構成的内存數組。
然後用0除以這些邏輯值,在四則運算中,邏輯值TRUE相當于1,FALSE相當于0,相除之後,得到由錯誤值和0構成的新内存數組。其中的0,就是0/TRUE的結果,表示符合條件。
最後用1作為查找值,在這個内存數組中找到0的位置,并返回第三參數中對應位置的内容。
如果有多個符合條件的記錄,LOOKUP默認以最後一個進行匹配。
五、逆向查詢
如下圖,要根據E3單元格的商品名稱,查詢對應的銷售經理。公式為:
=LOOKUP(1,0/(C2:C10=E3),A2:A10)
單條件查詢的模式化寫法為:
=LOOKUP(1,0/(條件區域=條件),查詢區域)
六、多條件查詢
如下圖,要根據F3單元格的商品名稱和G3單元格的部門,查詢對應的銷售經理。公式為:
=LOOKUP(1,0/((D2:D10=F3)*(B2:B10=G3)),A2:A10)
多條件查詢的模式化寫法為:
=LOOKUP(1,0/((條件區域1=條件1)*(條件區域2=條件2)),查詢區域)
七、模糊查詢等級
如下圖,要根據B列銷售業績返回對應的評定标準,E~F列為标準對照表。
C2單元格公式為:
=LOOKUP(B2,$E$3:$F$6)
這種方法可以取代IF函數完成多個區間的判斷查詢,前提是對照表的首列必須是升序處理。
八、提取有規律的數字
如下圖,要提取出B列混合内容中的數值。
公式為:
=-LOOKUP(1,-RIGHT(B2,ROW($1:$9)))
本例中,數值都位于右側,因此先用RIGHT函數從B2單元格右起第一個字符開始,依次提取長度為1至99的字符串。
添加負号後,數值轉換為負數,含有文本字符的字符串則變成錯誤值。
LOOKUP函數使用1作為查詢值,在由負數、0和錯誤值構成的數組中,忽略錯誤值提取最後一個等于或小于1的數值。最後再使用負号,将提取出的負數轉為正數。
九、帶合并單元格的查詢
如下圖,根據D2單元格的姓名查詢A列對應的部門。
公式為:
=LOOKUP("做",INDIRECT("A1:A"&MATCH(D2,B1:B10,0)))
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單元格區域中最後一個文本,也就是江北公司,得到“蘇明哲”所在的部門。
好了,咱們今天的内容就是這些吧,祝小夥伴們一天好心情~
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!