分享免费的编程资源和教程

网站首页 > 技术教程 正文

鉴定完毕:数据匹配失准!VLOOKUP错误结果的原因及修正方法

goqiw 2024-10-26 11:03:59 技术教程 43 ℃ 0 评论

VLookup是Excel中的纵向查找函数,通常用来进行数据核对以及多表格间的数据匹配,总体来说还是属于数据查询的范畴,它极大提高了我们的数据管理的工作效率。

然而,在一些特殊情况下,VLookup函数使用不当,也会给我们带来一些“不便”,甚至会有“错误”的表现。

以上表中的数据为例,我们要通过AB两列数据查询D列的公司名对应的职员姓名,正常情况下这种查询用VLookup再合适不过了。

在E2单元格中输入 =VLOOKUP(),如图所示,函数体内要提供「查找值」、「数据表」、「列序数」以及「匹配条件」这几个参数。

查找值,顾名思义就是要查找的内容,这里我们是查询的是D2单元格的内容,即:一大大公司,VLookup函数各个参数以英文半角逗号来分隔。

数据表,就是从哪些数据中查找第一个参数(查找值),这里可以选择某列,或多列,单列的话一般是用来查询查找值本身是否存在,多列则是通过查找值来获取它相应的数据,这与其第三个参数密切相关。

列序数,与数据表配合使用,用于指定输出结果到底是数据表中的哪一列。

匹配条件,用的最多的是精准匹配,其值为False,也可以直接写为0,而模糊匹配常应用到比如分数段的模糊划分,它不是某个确切的值,而是界于哪两个数之间的区间。

如上图公式所示,它代表的是查询D2单元格(公司名称)的值,在A列到B列中是否存在,如果查询到该公司名,则输出(第2列)职员的姓名,并且进行精确匹配,这是通过公司名来查询职员姓名。

结果显而易见,E3单元格输出的结果为刘备,似乎没什么问题。

我们选中E3单元格,鼠标移到该单元格的右下角处,光标变为一个黑色十字,然后按住鼠标左键不放,然后下拉,或者双击黑色十字以实现向下智能填充。

然而,向下智能填充后的结果却让我们大跌眼镜,匹配到的职员姓名只显示了第一个人的信息,重复的公司名下只匹配到了第一个职员的姓名,这种错误是坚决不允许存在的。

那么,如何才能识别到其对应的职员姓名呢?

我们需要让公司名称和职员姓名之间形成一种一一对应的关系,这样数据就具有了唯一性,只有唯一的数据才能做到精准匹配,思路有了,接下来看如何实现。

在A列上点击鼠标右键,在其左侧插入2个空列,我们为其增加两个辅助列。

插入列之后的A列为ID,用于统计公司名称列的重复数量,B列设置为关键词,我们将ID与公司名称进行连接重组,生成新的查询关键字。

ID列的A2单元格中输入图中按条件统计的公式,用于统计公司名称在列表中出现的次数。

这个公式就统计出了对应的公司名称在C列中出现的次数,智能填充后,次数就做为各公司职员专属的ID了。

有了这个ID,再加上其对应的公司名称,那么就生成了具有唯一属性的搜索关键字,如图中B2单元格的公式所示。

这个关键字中的数字其实就是给职员的编号,1一大大公司对应的职员姓名是刘备,也可以将其连接为一大大公司1,这样更容易理解一点。

同样的方法,查找值也需要ID和辅助列来生成对应的关键字信息,如上图,这样,我们就可以使用新的关键字来一一匹配职员姓名。

通过G列的关键字信息,来查询B列关键字对应的职员姓名。

职员姓名在选择的区域中是第3列,所以,列序数为3,然后进行精确匹配。

这样一番操作下来,我们终于得到了正确的结果,VLookup函数的便捷性是有目共睹的,若遇到上述的情况就要考虑到查询条件是否具有唯一性,让数据结果更加准确才是不违背初心。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表