excel中,使用LOOKUP+SEARCH解決全稱查找簡稱問題,SEARCH支持通配符。冷門函數SEARCHB可分離字元,區分位元組。學習新公式更智能。
問題,購貨單位的名稱是一樣,產品名稱左邊是用簡稱,右邊是用全稱,現在要根據全稱查找簡稱對應的單價。試了好久都沒解決。
這個問題,如果不懂方法,確實是很難解決。也是突然想起來LOOKUP這個新方法,才得以解決。
VLOOKUP支持通配符,如果是左邊的簡稱查找右邊的全稱,是可以很容易解決。右邊添加一個輔助列,將購貨單位和產品名稱連接起來。
=E2&F2
現在就可以直接VLOOKUP了。
=VLOOKUP(A2&B2,D:G,4,0)
不過,現在問題是根據全稱查找簡稱,VLOOKUP不支持這種用法。而他的兄弟LOOKUP支持,但有一個前提,不能出現通配符*。
=LOOKUP(1,0/(($A$2:$A$5=E2)*FIND($B$2:$B$5,F2)),$C$2:$C$5)
一旦有通配符*,LOOKUP+FIND這個經典組合也派不上用場,全出錯。
對於這種,除了將通配符查找替換掉,還有沒其他方法呢?
其實,有一個函數用法跟FIND幾乎一樣,就是SEARCH,這個新函數支持通配符。
只要將FIND換成SEARCH,問題就解決了。
=LOOKUP(1,0/(($A$2:$A$5=E2)*SEARCH($B$2:$B$5,F2)),$C$2:$C$5)
SEARCH這個是冷門函數,他還有一個帶B的兄弟SEARCHB,最經典的用法,就是分離字元。
字母、數字是單位元組用?表示,就是查找字母、數字首次的出現位置,然後將後面的所有內容提取。
=MIDB(A2,SEARCHB("?",A2),99)
B系列函數跟沒帶B的用法一樣,唯一的區別就是區分位元組,漢字是雙位元組,字母和數字是單位元組。
比如盧子1987,就是2個漢字,也就是4個位元組,因此首次數字出現位置是5。
=SEARCHB("?",A2)
同理,分離漢字就可以用SEARCHB減去1位來提取。
=LEFTB(A2,SEARCHB("?",A2)-1)
熱門函數雖然重要,冷門函數也不能忽視,要不然關鍵時刻會無從下手。
原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/160217.html