前一篇推文中我們教了大家如何用 vlookup 函數(shù)查找?guī)ㄅ浞膯卧?,立刻引起了讀者的反響。
有些讀者表示,在工作中還遇到過各種稀奇古怪的問題,比如 vlookup 突然失靈了,數(shù)據(jù)明明正確就是查找不出結(jié)果。
比如下面這個(gè)案例。
下圖 1 中的 A、B 列為某公司員工的身份證號,請根據(jù) D 列中列出的身份證號,在 E 列中查找出對應(yīng)的姓名。
效果如下圖 2 所示。
解決方案:
乍一看,這么簡單的需求沒什么好糾結(jié)的,vlookup 公式直接查就可以了。
1. 在 E2 單元格中輸入以下公式 --> 下拉復(fù)制公式:
=VLOOKUP(D2,A:B,2,0)
但是很奇怪,找不到對應(yīng)的姓名。而我用 Ctrl+F 去查找了一下,D 列的身份證號在 A 列又千真萬確存在,這到底是怎么回事?
為了在 Excel 中完整顯示 18 位的身份證號碼,必須將單元格格式設(shè)置為文本,這樣在數(shù)據(jù)錄入的過程中,就可能會存在一些不可見的字符。
為了能夠使兩邊的文本能夠匹配上,通??梢試L試以下幾種做法:
用 trim 函數(shù)去除兩列身份證號碼的前后空格,之后再用 vlookup 查找。
如果 trim 不管用,可以嘗試用 clean 函數(shù)去除一些不可見的特殊符號
如果上述方法還是不行,可以在查找單元格前后加上 '*',用 & 符號連接起來。
有關(guān) trim 和 clean 函數(shù)的詳解,請參閱 Excel 數(shù)據(jù)源清洗,用這兩個(gè)函數(shù)批量刪除空格和換行。
我們直接來試一下第三種用法。
2. 選中E2:E5 區(qū)域,輸入以下公式 --> 按 Ctrl+Enter 回車:
=VLOOKUP('*'&D2,A:B,2,0)
現(xiàn)在所有姓名都成功查找出來了。這是什么原理呢?
'*' 是通配符,用 & 連接符號跟 D2 連在一起,表示 D2 前含有任意字符的單元格;
如果前面加 '*' 找不到,可以試下前后都加,即 '*'&D2&'*';
如果還是找不到,可以再疊加清洗函數(shù),比如 '*'&CLEAN(D2)&'*'
以下就是最終效果。
聯(lián)系客服