Excel 各種條件查詢函數 單條件 多條件 精確 模糊 多結果
今天和大家分享的主題是Excel函數常用的各種條件查詢套路總結,內容涵蓋了單條件數據查詢、多條件數據查詢、精確查詢、模糊條件查詢、多結果數據查詢以及動態表格查詢、多表數據查詢等。建議收藏哦~
1,單條件單結果查詢
醬紫的問題,我們最常用VLOOKUP函數。
VLOOKUP函數的語法非常簡單。
=VLOOKUP(找誰,在哪里找,查找值在查找范圍中的第幾列?0失誤找還是隨便找?)
但該函數有3個新手容易犯錯的注意點:
1, 查找值必須在查找范圍的首列。
2, 第3參數是返回查找值在查找范圍中的第幾列,而不是表格的第幾列。
3, 第4個參數是匹配方式,當使用精確匹配方式時,通常輸入0。
當查找值不在查找范圍首列時,與其選擇VLOOKUP函數,不如使用INDEX+MATCH函數組合。
公式:
=INDEX(A:A,MATCH(D2,B:B,0))
MATCH函數先取得D2單元格的值在B列中的序列號,然后通過INDEX函數按圖索驥取得結果。
有一部分表親此時依然喜歡使用VLOOKUP函數:
{=VLOOKUP(D2,IF({1,0},B:B,A:A),2,0)}
坦白說,該數組公式計算效率和編寫體驗都奇差無比,是2B青年糊弄小白新手的常用伎倆,少用為宜。
2,多條件單結果查詢
這樣的問題我們通常使用LOOKUP函數。該套路可以總結為:
=LOOKUP(1,0/(條件1*條件2……),結果區域)
如下圖所示,C10單元格公式:
=LOOKUP(1,0/((A$2:A$7=E2)*(B$2:B$7=F2)),C$2:C$7)
3,單條件模糊查詢
Excel內常用的通配符有兩個。一個星號(*),一個問號(?)。
星號可以代替任意個字符,既可以是0個,也可以是多個。
問號只能代替任意一個字符。
MATCH函數和VLOOKUP函數都支持通配符的使用。
如下圖所示,兩個函數都可以解決問題。
公式1:=VLOOKUP("*"&D2&"*",A:B,2,0)
公式2:=INDEX(B:B,MATCH("*"&D2&"*",A:A,0))
4,多條件模糊查詢
多條件模糊查詢依然可以使用LOOKUP(1,0/(條件),結果)的經典套路。
下面的公式利用SEARCH函數支持使用通配符的特性(FIND函數不支持通配符),進行模糊查詢匹配。
公式:
=LOOKUP(1,0/SEARCH("*"&A10&"*"&B10&"*",A$2:A$7&B$2:B$7),C$2:C$7)
5,多結果數據查詢:
該問題依然有一個經典的萬金油函數查詢套路,INDEX+SMALL+IF。
公式:
=INDEX($B:$B,SMALL(IF($A$1:$A$7=$D$2,ROW($1:$7)),ROW(A1)))
解說:
公式先通過IF函數判斷A1:A7的數據是否等于D2單元格的查詢值,如果相等,則返回對應值的行號,否則返回邏輯值FALSE;然后通過SMALL函數對行號從小到大取值,最后通過INDEX函數根據行號按圖索驥取得最后的查詢結果。
6,動態表格數據查詢
當根據單元格所輸入或選擇的表名,動態性的對相應的表格進行數據查詢時,我們通常嵌套INDIRECT函數構建動態查詢區域。
如下圖所示,根據B1單元格輸入的表名,查詢B2單元格在該表所對應的成績結果。
公式:
=VLOOKUP(B2,INDIRECT(B1&"!A:B"),2,0)
7,多表格數據查詢
一個工作簿有多個表格,當你并不知道該查詢值可能存在哪個表格時,可以使用以下多表數據查詢套路。
假設表格名稱是1~12月。
公式:
=VLOOKUP(B1,INDIRECT(LOOKUP(1,0/COUNTIF(INDIRECT(ROW($1:$12)&"月!A:A"),B1),ROW($1:$12)&"月!a:b")),2,0)
解說:
該公式先通過INDIRECT(ROW($1:$12)&"月!A:A")構建多表數據區域,通過COUNTIF判斷查詢值在多表數據區域(A列)是否存在,然后通過LOOKUP的條件查詢套路返回相應的表格名稱,最后再使用INDIRECT函數對LOOKUP的表名查詢結果構建VLOOKUP函數的查詢區域,進而取得最后查詢結果
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。