當前位置: 妍妍網 > 辦公

數據查詢,這個函式深藏功與名

2024-07-14辦公

小夥伴們好啊,今天咱們說說LOOKUP函式。

這個函式主要用於在單行或單列的尋找範圍中查詢指定的尋找值,並返回另一個單行或單列範圍中對應位置的值。

該函式支持忽略空值、邏輯值和錯誤值來進行數據查詢,幾乎可以完成VLOOKUP函式和HLOOKUP函式的所有尋找任務,接下來咱們就一起看看LOOKUP函式的常用套路。

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

=LOOKUP("々",B:B)

或是

=LOOKUP("做",B:B)

根據LOOKUP函式的幫助說明,在尋找一個具體的值時,要求第二參數必須為升序,如果找不到具體的查詢值,就返回比查詢值小的最接近的一個。

實際操作時,即便是第二參數沒有按升序處理,LOOKUP也會傻乎乎的把第二參數當成已經升序進行處理,認為排在最後的肯定都比前面的要大。

公式中,將尋找值設定為一個在電腦字元集中編碼非常大的字元 "々" 或是 "做" ,LOOKUP在A列從後向前尋找這個字元。當A列最後一個字元的字元集編碼小於 "々" "做",LOOKUP函式就預設將最後一個字元當成A列所有字元中最大的一個,最終返回這個字元了。

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

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

9e+307,就是9乘以10的307次冪,是一個非常非常大的數值。查詢原理和前面所述是一樣的,當找不到這個非常大的數值時,預設將查詢區域中最後一個數值認為是整個查詢區域裏最大的一個值。

三、填充合並單元格

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

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

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

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

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

先使用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(1,0/(條件區域=條件),查詢區域)

六、多條件查詢

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

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

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

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

或者:

=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單元格區域中最後一個文本,也就是江北公司,得到「蘇明哲」所在的部門。

好了,咱們今天的內容就是這些吧,祝大家一天好心情~

圖文作者:祝洪忠