之前写了一篇博客程序员如何巧用 Excel 提高工作效率, 讲解了程序员在日常工作中如何利用 Excel 来提高工作效率, 没想到收到很好的反馈, 点赞量, 评论量以及阅读量一度飙升为我的博客中 Top 1, 看来大家平时帮业务修改数据的场景很多啊, 哈哈.
好了, 言归正传, 本篇博客我们主要讲解下 Excel 中 VLOOKUP 函数的使用, 相比于上一篇中的内容, 个人觉得这个相对高级一些.
1. 使用背景
为什么会使用到这个函数呢, 背景是这样的, 有两个系统, 我们假设叫 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_seller
- SET supplier_seller_name = '苏州食行生鲜电子商务有限公司',
- contact_name='张洪良',
- contact_email='zhanghongliang@163.com',
- contact_mobile='13758494357'
- WHERE disabled = 0
- AND supplier_seller_code = 'A000001';
- UPDATE supplier_seller
- SET 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 中两列的位置
因此建议将匹配列放在第一列, 避免出现问题排查浪费时间.
来源: https://www.cnblogs.com/zwwhnly/p/10735759.html