小夥伴們好啊,今天老祝和大家一起來學習LOOKUP函式 的一些典型用法。
這個函式有兩個特點:
第一個特點,要求查詢區域必須升序進行排序。如果沒有經過排序,LOOKUP函式也會認為排在數據區域最後的內容,是該區域中最大的。
第二個特點,當尋找不到具體的查詢值時,會以比查詢值小、並且最接近查詢值的內容進行匹配。
另外,還能辨識查詢值是文本
格式
還是數值格式,再以相同類別的內容進行匹配。
1、查詢A列中的最後一個文本
模式化公式為:
=LOOKUP("々",A:A )
"々"通常被看做是一個編碼較大的字元,它的輸入方法為<Alt+41385>組合鍵。
如果感覺每次寫這個符號有點費事兒,也可以寫成:
=LOOKUP("座",A:A )
一般情況下,第一參數寫成「座」也可以返回一列或一行中的最後一個文本。
下圖中,B列的部門是一些合並單元格,在C列使用LOOKUP就能填充完整。
=LOOKUP("座",B$2:B2)
第2參數使用了動態擴充套件的技巧,僅釘選起始單元格的地址,當公式下拉時,LOOKUP函式的查詢區域不斷擴大。
公式相當於是從B2開始,到公式所在行這個區域內,尋找最後一個文本。
2、查詢A列中的最後一個數值
模式化公式為:
=LOOKUP(9E307,A:A)
9E307被認為是接近Excel規範與限制允許鍵入最大數值的數,用它做查詢值,可以返回一列或一行中的最後一個數值。
如果A列中的數據既有文本也有數值,想得到最後一個單元格內容,咱們可以寫成這樣:
=LOOKUP(1,0/(A:A<>""),A:A)
3、逆向查詢
下面這個表中,A:C列是員工基礎資訊表,分別是部門、姓名和職務。
現在要根據E5單元格中的員工姓名,在這個資訊表中查詢屬於哪個部門,也就是咱們常說的逆向查詢,就可以使用LOOKUP函式了。
F5單元格輸入以下公式:
=LOOKUP(1,0/(B2:B10=E5),A2:A10)
得出的結果是「銷售部」。
上面這個公式就是LOOKUP函式最典型用法。 可以歸納為:
=LOOKUP(1,0/(條件區域=指定條件),目標區域或陣列)
公式中的 0/( 條件區域=指定條件) 部份,先使用等式對比條件是否符合,如果符合就返回邏輯值TRUE,否則返回FALSE。最終得到一個記憶體陣列結果。
再使用0除以這個記憶體陣列,0除以 T RUE結果是0,0除以 FALSE結果是錯誤值。
接下來使用1作為查詢值,在記憶體陣列中進行尋找,由於找不到1,就用最後一個0進行匹配,並返回第三參數中同一位置的元素。
如果是多個條件,模式化的寫法為:
=LOOKUP(1,0/(條件1)/(條件2)/(條件N),目標區域或陣列)
4、查詢產品類別
如下面這個圖中所示,A列是產品名稱,D列是型別對照表。
如果產品名稱中包含對照表中的關鍵字,就顯示出該內容。
B2單元格輸入以下公式,向下復制。
=LOOKUP(1,-FIND(D$2:D$7,A2),D$2:D$7)
簡單說說公式各部份的含義:
「 FIND(D$2:D$7,A2) 」部份:
首先用FIND函式,以 D$2:D$7 單元格中的類別關鍵字作為查詢,在A2單元格中分別查詢這些字元出現的位置,得到一個由錯誤值和數值組成的記憶體陣列。
加上負號後,記憶體陣列中的數值變成負數,錯誤值部份的結果不變。
接下來使用1作為查詢值,在記憶體陣列中進行尋找,由於找不到具體的尋找值,同時LOOKUP認為陣列中最後一個數值一定是所有數值中最大的,因此以最後一個負數與之匹配,並返回第三參數中同一位置 的元素。
關於LOOKUP函式的更多用法,歡迎小夥伴們在留言區分享。
好了今天咱 們的分享就是這些吧 ,祝各位一天好心情~~
圖文制作:祝洪忠