Excel Home
全球知名的Excel资源网站之一

VLOOKUP函数有个BUG,你——知道吗?

有一个姑娘她有一些任性还有一些嚣张——她的名字不是小燕子,而是小A。
小A在一家小公司做财务。
秋天,小A在ExcelHome技术论坛在线培训中心学了两期课程,Excel算是入门了。从此,小A工作中的很多表格问题都可以借助新学的函数轻松搞定,她的工作效率和心情都得到了解放……
冬天来了,小A很少加班了,她深深觉得,Excel真是一款神器,VLOOKUP不愧是函数世界的大众情人,她爱它胜过爱她男票,尽管她还不知道她男票叫什么名字,何方人士,胖还是瘦,有钱还是……
然后小A就被公司辞退了。
为什么被辞退?!
说起来都是VLOOKUP惹的祸,小A不知道原来它有这么大一个BUG!

小A制作了一份表格。A:B列是数据明细。其中A列是员工的工号,B列是工资。每当有员工把工资领取了,它就把该员工的工号和工资填写在这两列。
D:E列是前来领取工资人的信息。D列是工号,E列有一个VLOOKUP函数公式:
=IFERROR(VLOOKUP(D2,A:B,2,0),”还没领”)
该函数的意思是,如果A列找不到D列的工号,就说明该员工未领工资,如果找到了工号,就返回已领取的工资。

小A觉得自己设计的这份表格思路和函数应用都挺好,就有点小开心小骄傲。

然后VLOOKUP那个该死的BUG就来了。
——有一个工号为4465592的,VLOOKUP没有在数据明细里找到信息,计算结果显示“未领取”,小A就给那人发了工资,又过了几天,她才发现,工资给那人发了双份!
……小公司……工人很痞……老板很叼……小A……
VLOOKUP函数有BUG!老娘不几道啊!明明数据源有4465592,VLOOKUP它为啥找不到?!被辞退的小A心里很委屈,她觉得自己需要尽快找一个男票,借一个温暖可依靠的臂膀,度过这个寒冷的冬天……
……

故事扯淡扯完了,我们谈一下VLOOKUP函数的“BUG”吧。
嗯,其实故事也不是完全扯淡,培训过程中,确实有碰到类此的案例,因为VLOOKUP的这个“BUG”,导致数据计算出错,甚至以至于造成钱财错漏,也是有耳闻。
事实上,这当然并不是VLOOKUP的BUG,而是它的一种计算规则。
对于数据类型,VLOOKUP的要求格外严格。
上图中的VLOOKUP函数之所以计算出错,便是因为D2单元格工号的数据类型是文本型数值(左上角有绿三角),而A列的工号是纯数值,两者尽管看起来长的一样,但数据类型并不一样,在VLOOKUP的眼中两者便并不等同。
不同函数对数据类型的要求有不同的态度,譬如说吧,COUNTIF函数就不在意数据类型是否匹配的问题……
倘若在F2输入一下公式,可以得到计算结果为1。
=COUNTIF(A:A,D2)
这说明在COUNTIF眼中,文本数值和纯数值是等同的。
这是不是说明COUNTIF比VLOOKUP函数好用呢?
——也不是,COUNTIF“犯其错”来也很疯狂的。

赞(169)
未经允许不得转载:ExcelHome » VLOOKUP函数有个BUG,你——知道吗?
分享到

关于我们联系我们
本站特聘法律顾问:李志群律师   沪ICP备11019229号-2

沪公网安备 31011702000001号

征信