Excel中实现模糊查询-LOOKUP+FIND函数
Excel中實現模糊查詢-LOOKUP+FIND函數
- LOOKUP函數
- 函數簡介
- 函數使用方法
- FIND函數
- 函數簡介
- 函數語法
- 示例
LOOKUP函數
函數簡介
??LOOKUP函數是Excel中的一種運算函數,實質是返回向量或數組中的數值,要求數值必須按升序排序。
------粘百度百科
函數使用方法
(1)向量形式:公式為
=LOOKUP(lookup_value,lookup_vector,result_vector)
式中 lookup_value—函數LOOKUP在第一個向量中所要查找的數值,它可以為數字、文本、邏輯值或包含數值的名稱或引用;
lookup_vector—只包含一行或一列的區域,其可以是文本、數字或邏輯值;
result_vector—只包含一行或一列的區域,其大小必須與 lookup_vector 相同。
(2)數組形式:公式為
= LOOKUP(lookup_value,array)
式中 array—包含文本、數字或邏輯值的單元格區域或數組它的值用于與 lookup_value 進行比較。
例如:LOOKUP(5.2,{4.2,5,7,9,10})=5。
?
注意:
??array和lookup_vector的數據必須按升序排列,否則函數LOOKUP不能返回正確的結果。文本不區分大小寫。
- 如果函數LOOKUP找不到lookup_value,則查找array和 lookup_vector中小于lookup_value的最大數值。
- 如果lookup_value小于array和 lookup_vector中的最小值,函數LOOKUP返回錯誤值#N/A。
- 另外還要注意:函數LOOKUP在查找字符方面是不支持通配符的,但可以使用FIND函數的形式來代替。
------粘百度百科
?
FIND函數
函數簡介
??Find函數用來對原始數據中某個字符串進行定位,以確定其位置。Find函數進行定位時,總是從指定位置開始,返回找到的第一個匹配字符串的位置,而不管其后是否還有相匹配的字符串。
------粘百度百科
函數語法
該函數的語法規則如下:
=FIND(find_text,within_text,start_num)
Find_text 是要查找的字符串。
Within_text 是包含要查找關鍵字的單元格。就是說要在這個單元格內查找關鍵字。
Start_num 指定開始進行查找的字符數。比如Start_num為1,則從單元格內第一個字符開始查找關鍵字。如果忽略 start_num,則假設其為 1。
?
注意:
??使用find函數可從文本字符串中查找特定的文本,并返回查找文本的起始位置。查找時,要區分大小寫。全角和半角字符。查找結果的字符位置不分全角和半角,作為一個字符來計算。可以單獨使用find函數,例如。按照查找字符的起始位置分開文本字符串,或替換部分文本字符串等,也多用于處理其他信息。計數單位如果不是字符而是字節時,請使用findb函數。find函數和findb函數具有相同的功能,但它們的計數單位不同。 [2]
??使用 start_num 可跳過指定數目的字符。例如,假定使用文本字符串“AYF0093.YoungMensApparel”,如果要查找文本字符串中說明部分的第一個“Y”的編號,則可將 start_num 設置為 8,這樣就不會查找文本的序列號部分。FIND 將從第 8 個字符開始查找,而在下一個字符處即可找到 find_text,于是返回編號 9。FIND 總是從 within_text 的起始處返回字符編號,如果 start_num 大于 1,也會對跳過的字符進行計數。 [3]
- 如果 find_text 是空文本 (),則 FIND 則會返回數值1。
- Find_text 中不能包含通配符。
- 如果within_text 中沒有 find_text,則 FIND返回錯誤值 #VALUE!。
- 如果 start_num 不大于 0,則FIND返回錯誤值 #VALUE!。
- 如果 start_num 大于 within_text 的長度,則 FIND 返回錯誤值#VALUE!。
------粘百度百科
示例
表格字段信息展示如下:
| 張1 | 三星Galaxy S21 Ultra | #N/A | |
| 張2 | 華為 MATE 9 | 華為 MATE 9 | |
| 張3 | 華為 MATE Xs | #N/A | |
| 張4 | 華為 MATE 30 PRO | 華為 MATE 30 PRO | |
| 張5 | 三星Note8 | #N/A | |
| 張6 | 華為 MATE 30 PRO | 華為 MATE 30 PRO | |
| 張7 | iPhone 13 PRO Max | #N/A | |
| 張8 | 華為 P40 | 華為 P40 | |
| 張9 | 華為 MATE 30 PRO | 華為 MATE 30 PRO | |
| 張10 | iPhone 7 Plus | #N/A | |
| 張11 | 華為 NOVA 2 Plus | 華為 NOVA 2 Plus | |
| 張12 | 華為 NOVA 2s | 華為 NOVA 2s | |
| 張13 | 華為 NOVA 4e | 華為 NOVA 4e | |
| 張14 | 華為 P10 Plus | 華為 P10 Plus |
??其中精準匹配的語句在上篇文章有詳細講解,這里用的數據也是上篇文章表格信息。
??現在要查看sheet1子表中B列手機型號與sheet3子表中A列手機型號模糊匹配結果:
- 匹配的話,在sheet1子表中C列返回模糊匹配上的手機型號;
- 不匹配的話,在sheet1子表中C列返回#N/A。
??這便使用到了LOOKUP函數和FIND函數,在D2單元格中寫==LOOKUP(1,0/FIND(Sheet3!A$1:A$15,B2),Sheet3!A$1:A$15)并按下回車鍵,對應文本便自動匹配,匹配后信息展示如下所示:
=LOOKUP(1,0/FIND(Sheet3!A$1:A$15,B2),Sheet3!A$1:A$15)
//其中Sheet3!A$1:A$15是對應要匹配查找的字符串,該字符串要升序排序
//其中B2是當前sheet1子表中要查找關鍵字的單元格
| 張1 | 三星Galaxy S21 Ultra | #N/A | #N/A |
| 張2 | 華為 MATE 9 | 華為 MATE 9 | 華為 MATE 9 |
| 張3 | 華為 MATE Xs | #N/A | #N/A |
| 張4 | 華為 MATE 30 PRO | 華為 MATE 30 PRO | 華為 MATE 30 PRO |
| 張5 | 三星Note8 | #N/A | #N/A |
| 張6 | 華為 MATE 30 PRO | 華為 MATE 30 PRO | 華為 MATE 30 PRO |
| 張7 | iPhone 13 PRO Max | #N/A | #N/A |
| 張8 | 華為 P40 | 華為 P40 | 華為 P40 |
| 張9 | 華為 MATE 30 PRO | 華為 MATE 30 PRO | 華為 MATE 30 PRO |
| 張10 | iPhone 7 Plus | #N/A | #N/A |
| 張11 | 華為 NOVA 2 Plus | 華為 NOVA 2 Plus | 華為 NOVA 2 |
| 張12 | 華為 NOVA 2s | 華為 NOVA 2s | 華為 NOVA 2 |
| 張13 | 華為 NOVA 4e | 華為 NOVA 4e | 華為 NOVA 4 |
| 張14 | 華為 P10 Plus | 華為 P10 Plus | 華為 P10 |
??由“精準匹配”和“模糊匹配”兩列對比可以看出,模糊查詢對比是返回大于自身值的上一個單元格中的字符串。
模糊查詢舉例:
??sheet3子表中部分展示順序如下圖所示:
??當前姓名為“張11”對應的手機型號為“華為 NOVA 2 Plus”。
1、“華為 NOVA 2 Plus”先與“華為 NOVA 2”比對,“華為 NOVA 2 Plus”比“華為 NOVA 2”大,繼續往下順序對比;
2、“華為 NOVA 2 Plus”和“華為 NOVA 2 PLUS”對比,“華為 NOVA 2 Plus”比“華為 NOVA 2 PLUS”小;
3、所以返回的是比自身值“華為 NOVA 2 Plus”大的“華為 NOVA 2 PLUS”上一個單元格中的字符串“華為 NOVA 2”。
sheet1和sheet3子表具體如下圖所示:
總結
以上是生活随笔為你收集整理的Excel中实现模糊查询-LOOKUP+FIND函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 激光打印机硒鼓加分量及寿命
- 下一篇: 安科瑞EMS能效管理平台的解决方案