Excelvlookup函数的几种高难度错误及解决方案

在未升级到O365之前 , vlookup函数是最常用的查找函数之一 , 甚至对很多人来说没有之一 。
那么重要的函数 , 然而在某些特定情况下却常常出错 , 可真闹心 。
我归纳总结了一下 , 除了查询区域参数的相对、绝对引用容易搞错 , 第3参数容易对错列这种比较容易发现和解决的问题以外 , 以下是比较常见却又有点技术含量的问题 。
案例:根据数字查找文本
根据文本查找数字
空值结果不要为0
带通配符“~”的查找
解决方案1:根据数字查找文本根据D列的月份查找出对应的获客数 。

Excelvlookup函数的几种高难度错误及解决方案
文章图片
如果按正常思路 , 应该在E2单元格输入以下公式-->下拉复制公式:
=VLOOKUP(D2,A:B,2,0)

Excelvlookup函数的几种高难度错误及解决方案
文章图片
但是由于A列的值是文本格式 , 而D列是数值 , 所以查找结果出错 。

Excelvlookup函数的几种高难度错误及解决方案
文章图片
因此本例的公式需要做如下变通 , 就能成功查找出结果:
=VLOOKUP(D2&"",A:B,2,0)
本公式与之前的区别只是在第一个查找参数后面加了“&""”;
作用是把查找的数字转换成文本型 , 使之可以成功与A列的文本匹配

Excelvlookup函数的几种高难度错误及解决方案
文章图片

Excelvlookup函数的几种高难度错误及解决方案
文章图片

Excelvlookup函数的几种高难度错误及解决方案
文章图片
解决方案2:根据文本查找数字下例的情况正好跟前面相反 , A列是数值 , 而作为查询列的D列却是文本格式 。

Excelvlookup函数的几种高难度错误及解决方案
文章图片
还是先看一下中规中矩的vlookup用法是否可行 。
在E2单元格输入以下公式-->下拉复制公式:
=VLOOKUP(D2,A:B,2,0)

Excelvlookup函数的几种高难度错误及解决方案
文章图片
查找结果仍然出错 , 原因还是因为A、D两列的格式不匹配 。

Excelvlookup函数的几种高难度错误及解决方案
文章图片
正确公式如下:
=VLOOKUP(D2*1,A:B,2,0)
该公式将查找参数*1 , 这样就能把文本型数字转换成数值 。

Excelvlookup函数的几种高难度错误及解决方案
文章图片

Excelvlookup函数的几种高难度错误及解决方案
文章图片
解决方案3:空值结果不要为0下例中的B列有部分空值 , 用vlookup查询的时候 , E列会出现怎样的结果?

Excelvlookup函数的几种高难度错误及解决方案
文章图片
Excelvlookup函数的几种高难度错误及解决方案】从下图可以看出 , 对于查询区域中的所有空值 , vlookup函数都返回0 。
但实际情况中 , 空值有时并不等同于0 , 如何让空还是空?

Excelvlookup函数的几种高难度错误及解决方案
文章图片
只需要将以上公式变换为
=VLOOKUP(D2,A:B,2,0)&""
上述公式只是多连接了一个空格 , 就将0强制转化成了空值 。

Excelvlookup函数的几种高难度错误及解决方案
文章图片

Excelvlookup函数的几种高难度错误及解决方案
文章图片
下图中的月份值为区间 , 月份之间用“~”连接 。
A、D列的格式完全一致 , 现在查找总该没问题了吧?

Excelvlookup函数的几种高难度错误及解决方案
文章图片
事实却未天从人愿 。

Excelvlookup函数的几种高难度错误及解决方案
文章图片

Excelvlookup函数的几种高难度错误及解决方案
文章图片
这又是为什么呢?因为“~”是通配符 , 它的作用是将通配符“?”和“*”转换为普通字符 。
如果要让“~”不具有通配符的作用 , 而是作为符号 , 那么就需要在它前面再加一个“~” 。
因此在公式中套用一个substitute函数 , 将查找参数中的“~”替换成“~~” , 就能成功找出结果 。
=VLOOKUP(SUBSTITUTE(D2,"~","~~"),A:B,2,0)

Excelvlookup函数的几种高难度错误及解决方案
文章图片

Excelvlookup函数的几种高难度错误及解决方案
文章图片
有关带通配符查找的详解 , 请参阅?