站长家园(原代码之家)(www.adminjie.com)网站源码,微信源码,游戏源码,商业源码分享平台。
当前位置:网站首页 技术文章 网络编程 正文

实用Excel技巧分享:消除Vlookup的“BUG”

时间:2022-05-06 [网络编程]作者:fabuyuan 浏览:8 次

在之前的文章《实用Excel技巧分享:四种等级评定公式》中,我们了解了四种等级评定公式的写法。而今天我们来聊聊Vlookup,看看怎么消除Vlookup的“BUG”,让空返为空,一起来看看吧!

今天某学员兴高采烈地跟我说发现vlookup存在一个重大的BUG。我听完一愣,这不应该吧?

听完这位学员详细叙述,我终于明白了。她所说的“BUG”是指Vlookup函数在运算过程中如果第三个参数返回值所在单元格为空,函数返回的结果不是空而是0。如下表所示,学员根据员工工号查找对应扣除工资明细,源表中9003工号对应的E4单元格为空时,右侧表中输出的结果为0,而不是空。

学员表示这种情况可能会导致数据统计错误,带来很大的麻烦。那么如何才能使空白单元格就返回一个空白单元格呢?

这个问题很简单,我们只需要对原vlookup函数公式运算结果进行判断,如果运算结果为0,就返回空值,如果运算结果不为零,就返回运算的结果。

首先给大家看看采用新的函数公式后的结果:

我们通过函数公式:=IF(ISNUMBER(VLOOKUP(I2,A:E,5,0))=FALSE,"",VLOOKUP(I2,A:E,5,0))就完成了“空对空”。

学员看完公式表示很懵,这么多括号怎么才能理清逻辑关系呢?况且还有个从来没用过的ISNUMBER函数!

当我们遇到很长的函数时不要害怕,只要按步拆解就能弄明白。

下面我们就为这位学员拆解函数公式。

拆解第一步:

VLOOKUP(I2,A:E,5,0)此部分函数公式相信经常看我们excel教程文章的朋友都比较熟悉,其含义是返回I2单元格在A列所在的行数对应第5列单元格内容。“千字不如一图”,用一张图片大家就会一目了然。

注意:1、vlookup常规的用法是查找值必须在选择的区域首列。2、第三个参数列号不能小于1,不能大于所选单元格区域总的列数值。如选中A:E区域后,区域里总共只有5列,如果输入6,那么就会返回单元格引用错误信息“#REF”。

拆解第二步:

ISNUMBER(VLOOKUP(I2,A:E,5,0)这部分函数公式看起来陌生,其实比第一步理解起来更加容易。只是在前面增加了一个ISNUMBER函数,我们只要弄清楚这个函数就简单了。

ISNUMBER函数可以拆解为IS+NUMBER,这样拆解开大家应该都会明白,其实就是“是否为数值”,他的功能就是判断一个单元格是否为数值。

下面我做个简单的演示给大家看下:

我们可以看到上面的例子中E6单元格为空白,ISNUMBER判断结果为FALSE。文章开头所描述的“9003工号对应的E4单元格为空”也是如此, ISNUMBER(VLOOKUP(I2,A:E,5,0)把9003工号的扣除工资判断为FALSE。

拆解第三步:

这部分内容主要涉及到一个非常常用的函数——IF。IF不过多解释,它的功能很强大,主要用来判定是否满足某个条件,如果满足返回一个值,如果不满足返回另外一个值。

下面我还是做个简单的演示给大家看下:

上表中我们可以很容易理解=IF(F6=FALSE,"",E6)函数公式。那么我们可以直接用ISNUMBER(VLOOKUP(I2,A:E,5,0)代替F6,双引号中间没有任何字符表示空白,VLOOKUP(I2,A:E,5,0)代替E6。最后就形成了我们文章开始所出现的函数公式:=IF(ISNUMBER(VLOOKUP(I2,A:E,5,0))=FALSE,"",VLOOKUP(I2,A:E,5,0))

相关学习推荐:excel教程

以上就是实用Excel技巧分享:消除Vlookup的“BUG”的详细内容,更多请关注站长家园其它相关文章!

本文标签:  Excel

转载请注明来源:实用Excel技巧分享:消除Vlookup的“BUG”

本文永久链接地址:https://www.adminjie.com/post/12021.html

免责声明:
本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。

附:
二○○二年一月一日《计算机软件保护条例》第十七条规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬!鉴于此,也希望大家按此说明研究软件!

版权声明:
一、本站致力于为软件爱好者提供国内外软件开发技术和软件共享,着力为用户提供优资资源。
二、本站提供的部分源码下载文件为网络共享资源,请于下载后的24小时内删除。如需体验更多乐趣,还请支持正版。
三、我站提供用户下载的所有内容均转自互联网。如有内容侵犯您的版权或其他利益的,若有侵犯你的权益请:提交版权证明文件到邮箱 2225329873#qq.com(#换为@) 站长会进行审查之后,情况属实的会在三个工作日内为您删除。

  • 站长家园(原代码之家)会员升级
  • 最新文章
    • 完全掌握java之String类

      完全掌握java之String类

      本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于string类的相关问题,包括了字符串的常量池、字符串的不可变性等等相关内容,下面一起来看一下,希...

    • 简单学习Python字符和列表(实例详解)

      简单学习Python字符和列表(实例详解)

      本篇文章给大家带来了关于python的相关知识,其中主要介绍了关于字符和列表的相关问题,包括了字符串的输入输出、列表循环遍历、列表的增删改查以及列表的嵌套等等内...

    • 图文解析Redis线程模型

      图文解析Redis线程模型

      本篇文章给大家带来了关于Redis的相关知识,其中主要介绍了关于线程模型的相关问题,Redis它是一个单线程的,下面就一起来看一下,希望对大家有帮助。推荐学习:...

    • jquery怎么判断元素是否有子节点

      jquery怎么判断元素是否有子节点

      方法:1、用children()获取元素下的所有子节点,语法“元素对象.children()”,会返回一个包含子节点的jQ对象;2、用length检测子节点个数...

    • jquery对象访问的方法有哪些

      jquery对象访问的方法有哪些

      jquery对象访问的方法有:1、each(),可以遍历指定的jquery对象,语法“$.each(对象,回调函数)”;2、size(),可统计jquery对象...

    热门文章