http://www.pptjcw.com

excel vba教程:VLOOKUP出错?排查手册请收好

    昨天在ExcelHome知识星球里看到一位同学的提问,在使用VLOOKUP函数时,明明查询区域里有对应的数字,却返回了错误值。

    excel vba教程:VLOOKUP出错?排查手册请收好

    这个问题老祝觉得比较有代表性,下面咱们就结合这个问题,共同学习一下VLOOKUP出错时可能存在的原因,小伙伴们遇到这样的问题时,可以顺藤摸瓜,对照这些原因来排除错误。

    先打开出现问题的文件看看:
    要实现的目的,是希望根据F列的商品名称,在左侧的数据源中查询出对应的出库单价。

    excel vba教程:VLOOKUP出错?排查手册请收好

    先看看G2单元格中的公式:
    =VLOOKUP(F2,B2:D14,3,FALSE)

    excel vba教程:VLOOKUP出错?排查手册请收好

    第一参数,也就是查询值,是F2单元格中的商品名称,这个没问题。
    第二参数,也就是查询区域,是数据源所在的B2:D14单元格区域,而且这个区域的首列也包含了要查询的商品名称。这个好像也没问题。
    第三参数,也就是要返回哪一列的内容,这里写成3,是希望从B2:D14这个区域中返回第三列的出库单价信息,这个也没问题。
    第四参数,用FALSE来指定使用精确匹配的查询方式,这个也没问题。

    再看看G3单元格中返回错误值的公式:
    =VLOOKUP(F3,B3:D15,3,FALSE)
    咦,这里的查询区域怎么变成了从第三行开始?

    excel vba教程:VLOOKUP出错?排查手册请收好

    哈哈哈,问题就这样轻松解决了,是因为第二参数没有使用绝对引用,当公式向下复制时查询区域就变了。
    如果要查询的内容在数据源的前几行,而查询的数据范围下拉后不再包含这几行,那就肯定会出现#N/A错误。
    只要将第二参数变成绝对引用,再向下复制公式,查询区域始终固定就OK:
    =VLOOKUP(F2,$B$2:$D$14,3,FALSE)

    除了查询区域没有使用绝对引用之外,VLOOKUP出错的常见原因还包扩以下几种:

    1、单元格里有空格

    如下图中,公式写法没问题,引用方式也没问题,出错的原因极有可能是被查询的内容里有空格,或者查询区域的单元格里有空格了。

    excel vba教程:VLOOKUP出错?排查手册请收好

    解决方法是按Ctrl+H键调出【查找和替换】对话框,在【查找内容】文本框中输入空格,点【全部替换】按钮。

    excel vba教程:VLOOKUP出错?排查手册请收好

    实际操作时,可以在英文输入状态下输入空格,全部替换,然后再在中文输入状态下输入空格,继续替换一次。

    2、不可见字符

    如果是从系统导出的数据源,这个问题存在的概率比较大。
    解决方法是单击可能包含不可见字符的列标,在【数据】选项卡下点【分列】按钮,然后在弹出的对话框中直接点【完成】即可。
    这种方法能清除大部分类型的不可见字符。

    excel vba教程:VLOOKUP出错?排查手册请收好

    3、查询区域选择错误

    如下图所示,要查询的商品名称,在数据源是B列,如果将公式写成从A列开始,那就不能怪VLOOKUP了:
    =VLOOKUP(F2,$A$2:$D$14,3,FALSE)

    excel vba教程:VLOOKUP出错?排查手册请收好

    4、漏掉了第四参数
    提示:如果您觉得本文不错,请点击分享给您的好友!谢谢

    上一篇:excel教程:带控件的动态图表,其实很简单 下一篇:excel表格教程:数据验证 典型应用合集

    郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。