大多時候我們都需要精確查找,但也會遇到需要模糊查找的時候。譬如依簡稱查找全稱,譬如依數值劃分等級等。模糊查找不等於瞎子摸象,這裡分享4種用VLOOKUP和LOOKUP函數進行模糊查找的方法。
今天來跟大家分享模糊尋找的幾個方法。
常規的模糊查找分為兩種情況,一種是數值;一種是文字。
首先我們分享關於數值的模糊查找。
範例:
某公司需要為新員工訂製工作服,現在需要根據員工的實際身高來匹配需要定製衣服的尺寸。
這種情況就需要透過模糊查找來傳回每個員工身高所對應的尺寸。有兩種方法來完成。
方法一:LOOKUP
函數公式:=LOOKUP(B2,{0;165;170;175;180; 185;190},{"S";"M";"L";"XL";"XXL";"XXXL";"XXXXL"})
#公式解析:
這是透過LOOKUP向量形式來完成模糊查找。可以理解為查找B2單元格處於{0;165;170;175;180;185;190}哪個區間,如果在某個區間內就回傳對應{"S";"M";"L";"XL ";"XXL";"XXXL";"XXXXL"}的文字訊息。
譬如169位於165-170之間,那麼就回傳「M」文字訊息。
這裡的區間對應關係如下。 0到小於165的屬於S尺寸;165到小於170的屬於M尺寸,依次類推,直到大於等於190的屬於XXXXL尺寸。
如果對此處看不懂的可以查看教程《Excel函數學習之LOOKUP函數的5種用法》的第四節「按區間查找的套路」。
方法二:VLOOKUP
函數公式:=IFERROR(VLOOKUP(B2 5,F:G,2,1) ,"S")
我們在日常工作中使用VLOOKUP函數時第四個參數都是輸入0,表示精確查找,此處第四參數為1,表示近似查找。
公式解析:
1.透過函數公式=VLOOKUP(B2,F:G,2,1)即可傳回目標區域中小於等於查找值的最大值所對應的尺寸。注意:在使用VLOOKUP函數進行模糊查找之前必須將查找範圍F:G處的資料依查找內容(此處為身高)進行升序排序。
例如,我們尋找172,那麼就回傳目標區域中小於等於172的最大值即170,對應的尺寸為M。由於服裝的尺寸是就高不就低,身高172的員工必須訂製身高175的L碼的衣服,所以我們在查找匹配時需要在員工身高基礎上加5,這樣就能返回大於身高的最小尺寸了。
2.員工中有部分身高即使加5後仍小於165,因為F列165就是最小的了,所以這部分資料無法在F列查找到所需值,VLOOKUP函數傳回錯誤值# N/A。我們希望小於165的員工都客製化S號,就透過IFERROR函數將VLOOKUP錯誤結果重定向為文字字元「S」。
下方分享文字的模糊查找,例如,透過尋找AB返回尋找區域中包含AB的AAAABBB儲存格所對應的值。
範例:
下表為各公司2018年度營業額數據,公司名稱為全名。現在我們在另外一個表格中需要根據公司簡稱來配對相關的營業額資料。
方法一:VLOOKUP 通配符
函數公式:=VLOOKUP("*" &E2&"*",A:B,2,0)
#公式解釋:
*代表所有字符,"*"&E2&" *"則表示包含E2儲存格文字內容的所有內容。
方法二:LOOKUP FIND
函數公式:=LOOKUP(1,0/FIND(E2,A$2:A$8), B$2:B$8)
公式解釋:
公式用了LOOKUP找出套路。透過FIND函數判斷E2單元格中文字處於A$2:A$8單元格中的位置,如果存在則傳回大於0的數值,否則傳回錯誤值;然後0/FIND(),則得到一組0和錯誤值的數組;最後LOOKUP函數出手,在數組中找到最大的不大於1的值,0,並根據0所在位置,返回對應的B$2:B$8中的值。
順便一嘴:如果你只想透過簡稱查到全稱,則公式可以改成=LOOKUP(1,0/FIND(E2,A$2:A$8),
A$2:A$8)
。
看不懂的可以看教程《Excel函數學習之LOOKUP函數的5種用法》的第二節「精確尋找的套路」
相關學習推薦:excel教學
以上是【整理分享】用VLOOKUP和LOOKUP函數進行模糊查找的4種方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!