帶特殊符號、區分大小寫的數據,你怎麼查詢
小夥伴們好啊,今天和大家一起說說有關查找的問題。
日常工作中,有關查找的問題非常多:比如說根據姓名查找身份證、根據工號查找職務、根據學號查找成績等等。常用的查找類函數包括VLOOKUP、LOOKUP、MATCH等等很多,用法也各不相同,今天咱們主要說說在查找中遇到的一些問題。
常規情況下的查找
如下圖所示,要求根據E2單元格的工號在A:C列中查找對應的職務。
用到的公式很簡單哈:
=VLOOKUP(E2,A:C,3,0)
還不知道VLOOKUP函數怎麼用的表親,可以查看咱們以前的內容,這裡咱們就不細說了。
有特殊字符的查找
如下圖所示,A列的產品編號中包含多個問號、星號和波形符,要求根據D列的產品編號查詢對應的供貨商。
如果再用剛才的方法,直接使用VLOOKUP函數,結果明顯不對了。
=VLOOKUP(D2, A:B,2,0)
雖然VLOOKUP函數使用了精確匹配方式,但返回的是不正確的結果或是錯誤值#N/A。原因是什麼呢?
原來VLOOKUP函數將字符中的星號識別為通配符進行查詢。
如D2單元格中的產品編號"N42H19.8*5",即被識別為以"N42H19.8"開頭、以5結尾的字符串。並且VLOOKUP函數有多個匹配結果時,只返回第一條內容,因此無法精確查詢到需要的結果。對於含有波形符的查詢值,VLOOKUP函數返回錯誤值#N/A,同樣無法實現查詢要求。解決的方法有沒有呢?往下看。
可以利用等式中不支持通配符的特點,使用LOOKUP函數完成查詢。
=LOOKUP(1,0/(D2=A:A),B:B)
LOOKUP函數的第二參數使用等式,直接比較A2單元格中的產品編號與A列的數據是否相同,巧妙避免了通配符造成的查詢錯誤。結果如下圖:
區分大小寫的查找
假如要求區分大小寫進行匹配,問題又來了,由於等式不區分大小寫,D2和D3單元格的查詢結果返回了同樣的內容。
話說小芳啊,你咋這麼讓人不省心呢:
怎麼破?往下看:可以利用FIND 函數區分大小寫,並且不允許使用通配符的特點,使用LOOKUP函數和FIND函數的組合拳完成查詢。
=LOOKUP(1,0/FIND(D2,A:A),B:B)
結果如下圖:
FIND函數返回D2單元格內容在A列各單元格中的起始位置。
在本例中,如果A列的內容與D2相同,就返回數字1,否則返回錯誤值#VALUE!。
用0除以數字1和錯誤值,變成0和錯誤值。
再用1作為查找值,在其中進行查找最後一個0的位置,並返回B列對應的供貨商姓名。
好了,今天的內容就這樣,祝各位表親們一天好心情!
閱讀更多 拓語教育 的文章