VLOOKUP函数存在的漏洞你们了解过吗
有一个女孩有些任性和傲慢。她的名字不是小燕子,而是小a
a在一家小公司从事金融工作。
秋天的时候,小阿在 excel 上了几节课,那是介绍课。从此,小啊工作中的许多表格分析问题我们都可以通过借助新学的功能可以轻松解决,她的工作学习效率和心情都得到了解放.
冬天来了,小A很少加班。她深以为Excel真的是神器,VLOOKUP是函数界的热门爱好者。她比她的男票更喜欢它,尽管她仍然不知道她的男票的名字,她是谁,胖还是瘦,富有还是.
然后小A就被公司开除了。
你为什么被解雇?
都是VLOOKUP的错。小A不知道它有这么大的BUG!
小啊做了一个表格。A:B栏为数据明细。a栏是员工的工号,b栏是工资。每当员工收到薪资时,都会在这两栏中填写员工的职务号和薪资。
D:E栏是来领工资的人的信息。D 列是工作订单号,e 列是 vlookup 函数公式:
=if错误(vlookup (D2,a:b,2,0),“尚未收到”)。
函数的意思是,如果在D列找不到A列的工号,则不支付员工工资,如果找到工号,则返回已支付的工资。
小啊觉得自己设计的桌子的思想和功能应用都挺不错的,所以有点开心和自豪。
然后那该死的vlookup虫子来了。
3354的工作号码是4465592。VLOOKUP在数据明细中没有发现任何信息,计算结果显示“没有收到”,于是小A给那个人发了工资。过了几天,她发现工资是一式两份付给那个人的!
.小公司.工人是非常新的.老板非常嫉妒.小A.
VLOOKUP函数有一个BUG!我知道的不多!明明数据源是4465592,为什么在VLOOKUP找不到?被解雇的小啊心里很委屈。她觉得我们自己发展需要学生尽快找到男票,借一只温暖可靠的胳膊度过大学这个寒冷的冬天.
……
故事到此结束。先说说VLOOKUP函数的“BUG”。
嗯,其实这个故事也不完全是废话。在训练过程中,这也是因为 vlookup 的“ bug”导致了数据计算错误,甚至导致金钱上的错误和遗漏。
其实这肯定不是VLOOKUP的BUG,而是计算规则。
VLOOKUP对数据类型的要求非常严格。
上图VLOOKUP函数计算错误的原因是D2单元格中的工号数据类型为文本类型数值(左上角有绿色三角形),而a列中的工号为纯数值。虽然看起来一样,但是数据类型不一样,所以在VLOOKUP眼里不一样。不同的函数对数据类型的需求有不同的态度。例如,COUNTIF函数不关心数据类型是否匹配.
如果在F2中输入公式,可以得到1的计算结果。
=COUNTIF(A:A,D2)
这表明在countif看来,文字值和纯值是等价的。
这是否意味着COUNTIF比VLOOKUP函数更好?
3354也不是。COUNTIF疯狂“犯错”。
需要保留本文链接地址:http://www.excelxx.com/xuexixinde/13974.html