前一篇推文中我们教了大家如何用 vlookup 函数查找带通配符的单元格,立刻引起了读者的反响。
有些读者表示,在工作中还遇到过各种稀奇古怪的问题,比如 vlookup 突然失灵了,数据明明正确就是查找不出结果。
比如下面这个案例。
下图 1 中的 A、B 列为某公司员工的身份证号,请根据 D 列中列出的身份证号,在 E 列中查找出对应的姓名。
效果如下图 2 所示。
解决方案:
乍一看,这么简单的需求没什么好纠结的,vlookup 公式直接查就可以了。
1. 在 E2 单元格中输入以下公式 --> 下拉复制公式:
=VLOOKUP(D2,A:B,2,0)
但是很奇怪,找不到对应的姓名。而我用 Ctrl+F 去查找了一下,D 列的身份证号在 A 列又千真万确存在,这到底是怎么回事?
为了在 Excel 中完整显示 18 位的身份证号码,必须将单元格格式设置为文本,这样在数据录入的过程中,就可能会存在一些不可见的字符。
为了能够使两边的文本能够匹配上,通常可以尝试以下几种做法:
有关 trim 和 clean 函数的详解,请参阅 Excel 数据源清洗,用这两个函数批量删除空格和换行。
我们直接来试一下第三种用法。
2. 选中E2:E5 区域,输入以下公式 --> 按 Ctrl+Enter 回车:
=VLOOKUP("*"&D2,A:B,2,0)
现在所有姓名都成功查找出来了。这是什么原理呢?
以下就是最终效果。