本文主要讲解下Excel中VLOOKUP函数的使用。
使用背景
为什么会使用到这个函数呢,背景是这样的,有两个系统,我们假设叫A系统,B系统,这两个系统都存储了供应商的信息并且和平相处很长时间,忽然有一天上班,就看到业务同学发的钉钉消息:
业务:在不,我发现你们A系统存储的供应商名称不对啊
我:举个例子
业务:有个供应商A系统叫[联营]苏州食行生鲜电子商务有限公司,但是B系统叫苏州食行生鲜电子商务有限公司,类似的还有很多,基本上A系统都加上了[联营]这个前缀或者[联营]这个后缀
我:那你的需求是?
业务:我需要A系统里的供应商名称全部修改为和B系统一致,以B系统为准,并且现在A系统我需要供应商的联系人信息,这个数据B系统是有的,你也帮我一并初始化过来
我:好吧,你说了算……
2.使用方法
按照上述的使用背景,业务提供了如下的Excel,这个Excel分3个Sheet,分别是:A系统供应商数据,B系统供应商数据,B系统供应商联系人数据,具体的数据如下所示:
我们的最终目的是拼接一个Update语句来更新A系统的供应商数据,然后批量生成,这样就可以批量更新A系统的供应商数据了。
基于此目的,我们拆分步骤如下:
把第2个Sheet和第3个Sheet中的数据匹配到第一个Sheet中,匹配条件是列:B系统供应商编码
在第一个Sheet中拼接Update语句(拼接方法可参考之前的博客程序员如何巧用Excel提高工作效率)
批量生成Update语句
第一步我们就需要用到VLOOKUP函数了,以下为匹配方法:
此时我们已经将需要的数据都匹配到了第一个Sheet中:
接下来我们需要的是拼接Update语句,方法如下:
最终批量生成的语句如下,完美完成:
UPDATE supplier_sellerSET supplier_seller_name = '苏州食行生鲜电子商务有限公司', contact_name='张洪良', contact_email='zhanghongliang@163.com', contact_mobile='13758494357'WHERE disabled = 0 AND supplier_seller_code = 'A000001';UPDATE supplier_sellerSET supplier_seller_name = '北京每日优鲜电子商务有限公司', contact_name='曾斌', contact_email='zengbin@163.com', contact_mobile='15601637452'WHERE disabled = 0 AND supplier_seller_code = 'A000002';
3.常见问题
在这个过程中,可能会出现以下情况,明明数据存在,匹配完成却显示#N/A(注意:数据不存在也会显示#N/A):
出现的原因可能有以下两种:
1.匹配的两列的单元格格式不同,比如第一个Sheet中的单元格格式是常规,第二个Sheet里的单元格格式是文本,解决方案就是将两列的单元格格式修改为一样:
2.匹配列不在第一列,如我们调整下第2个Sheet中两列的位置
因此建议将匹配列放在第一列,避免出现问题排查浪费时间。
(文章来源:博客园)