程序员如何巧用Excel提高工作效率

主要讲解下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系统的供应商数据了。

基于此目的,我们拆分步骤如下:

  1. 把第2个Sheet和第3个Sheet中的数据匹配到第一个Sheet中,匹配条件是列:B系统供应商编码
  2. 在第一个Sheet中拼接Update语句(拼接方法可参考之前的博客程序员如何巧用Excel提高工作效率)
  3. 批量生成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中两列的位置

因此建议将匹配列放在第一列,避免出现问题排查浪费时间。

作为一名程序员,我们可能很少使用Excel,但是公司的一些职能部门,比如HR,财务等,使用Excel真的是太熟练了,以至于一些系统开发出来,导入和导出功能是使用最频繁的,哈哈。

其实在程序开发的过程中,有些场景,我们也可以借助于Excel来大大的提升工作效率,比如以下场景:

  • 业务给一批数据,需要你批量更新下数据库
  • 排查问题时,我们需要找出数据中的重复项
  • 我们需要将一些内容按某个分隔符拆分成多列内容,以匹配不同的列

接下来,我们详细讲解下具体的操作细节。

1.拼接Sql字符串

在做开发的过程中,经常需要根据Excel中的数据去数据库查询,少量数据还可以去复制粘贴,大量数据时就需要将Excel中的数据拼接成自己需要的Sql,以提升工作效率。

1.1:将某一列拼接成Sql中的In条件

假设现在有如下的Excel数据,我需要从数据库中查询出这些门店的数据。

操作方法如下图所示:

将生成的一列数据复制到Visual Studito Code中,进行替换即可

1.2:将某一列拼接成C#中的List

假设现在有如下的Excel数据,我需要将这些值写在C#中的List中

操作方法如下图所示:

将生成的一列数据复制到Visual Studito Code中,进行替换即可

1.3:拼接Sql语句

你想想,哪天你正在工作呢,业务扔过来一个Excel,你一脸懵逼,以下是你们的对话:

业务:帮我把系统里的某个字段改成Excel里的可以吗?我当时维护错了

你:你可以在系统里修改啊

业务:这么多数据,你让我一个一个改啊?而且很急,而且你还要考虑系统好用性,嘚吧嘚一大堆理由

你:内心深处,你是拒绝的,这明明是业务工作中的失误,现在却要你这个程序员来善后,事实上,你说:好的

既然答应了,就得想着咋处理,数据如果只有几条,你复制粘贴还可以,如果是成千上万条呢,复制粘贴肯定不现实,累死你不说,还容易出错。

这时我们就可以借助于Excel来快速的拼接Sql。

假如有如下的Sql语句,现需要将Where条件中的StoreCode的值替换为Excel中的值。

SELECT  st.StoreCode ,
st.StoreName ,
s.SellerName ,
so.SellerOrgName
FROM dbo.Fct_Store AS st
INNER JOIN dbo.Fct_Seller AS s ON s.Disabled = 0
AND st.SellerCode = s.SellerCode
INNER JOIN dbo.Config_SellerOrg AS so ON so.Disabled = 0
AND s.SellerOrgCode = so.SellerOrgCode
WHERE st.Disabled = 0
AND st.StoreCode = '10000196';

按照1.1和1.2中的方式,将Sql语句复制到Excel中,提示如下信息(如果语句长度少的话,不会出现):

此时,就需要用到Excel中的CONCATENATE()函数,如下所示:

2.查找重复项

在平时的开发工作中,我们有时会需要从Excel中查找出重复的数据,以便清理业务数据。

假如现在有如下图所示的文档,现需要找出“店铺编码”列的重复数据。

2.1新建规则

选中列“店铺编码”,然后依次点击菜单:开始-->条件格式-->突出显示单元格规则-->重复值

2.2设置重复值格式

在“重复值”弹出框中,按照默认的样式点击确定,会发现重复项被标记出来

2.3筛选重复数据

点击菜单:数据-->筛选,然后按照单元格颜色筛选,就可以只查看重复的数据

筛选后的结果如下所示(只显示了重复的数据,达到了我们的目的):

2.4清除规则

如果想恢复原来的数据,可以点击开始-->条件格式-->清除规则-->清除整个工作表的规则,清除掉该规则。

3.单元格内容拆分

一般情况下,开发在记录一些日志时,都会比较简单,如:1274206,商品1274206已淘汰,但是发给到运营时,运营一般都关注的比较细,需要明确的表头。

以下为程序中开发记录的日志:

但是发给运营时,运营需要明确的表头,如:商品编码,失败原因

此时就需要将单元格的内容根据,拆分成多个单元格,操作步骤如下:

3.1.选中需要拆分的数据,点击数据--分列

3.2选中单元框:分隔符号,点击下一步

3.3分隔符号选中逗号,点击下一步,然后点击完成

此时会看到单元格的内容自动拆分成两列,如下所示:

4.永久取消超链接

在使用Excel的过程中,Excel会自动将网址转换为超链接,操作不当,容易误点,引起不必要的错误。

那么如何在Excel 2013里永久取消超链接呢?

1.依次打开菜单文件--选项,弹出Excel 选项弹出框

2.选中左侧菜单"校对",点击"自动更正选项"

3.取消勾选"Internet 及网络路径替换为超链接"

作者:申城异乡人 
出处:https://www.cnblogs.com/zwwhnly/

巧用Excel提高工作效率的更多相关文章

  1. 程序员如何巧用Excel提高工作效率 第二篇

    之前写了一篇博客程序员如何巧用Excel提高工作效率,讲解了程序员在日常工作中如何利用Excel来提高工作效率,没想到收到很好的反馈,点赞量,评论量以及阅读量一度飙升为我的博客中Top 1,看来大家平 ...

  2. 程序员如何巧用Excel提高工作效率

    作为一名程序员,我们可能很少使用Excel,但是公司的一些职能部门,比如HR,财务等,使用Excel真的是太熟练了,以至于一些系统开发出来,导入和导出功能是使用最频繁的,哈哈. 其实在程序开发的过程中 ...

  3. Windows 下有什么软件能够极大地提高工作效率

    Windows 下有什么软件能够极大地提高工作效率?修改 可以推荐一些好的应用或者有趣的程序,能提升工作效率或者能让人眼前一亮的.修改 举报1 条评论 分享 • 邀请回答   按票数排序按时间排序 2 ...

  4. Android Studio in OSX 提高工作效率的快捷键

    前言 本篇文章参考了<倍数提高工作效率的Android Studio>一文,快捷键基于OS X系统. OS X Yosemite 10.10.5 Android Studio 1.3.1 ...

  5. 倍数提高工作效率的 Android Studio 奇技

    来源:JeremyHe 链接:http://zlv.me/posts/2015/07/13/14_android-studio-tips/ 这是从Philippe Breault的系列文章<An ...

  6. [转]倍数提高工作效率的 Android Studio 奇技

    转自:http://android.jobbole.com/81687/ 倍数提高工作效率的 Android Studio 奇技 2015/10/08 · 技术分享 · 4 评论· Android S ...

  7. 15款提高工作效率的 Web 项目管理工具

    在今天的快节奏的商业世界里,能够通过计划.组织.和管理资源池以及评估开发资源的模式来管理一个项目,是一个很艰巨的任务. 有很多现成的项目管理软件来帮助减轻项目管理的负担,并且他们几乎覆盖了所有类型的业 ...

  8. 程序员提高工作效率的15个技巧【Facebook】

    程序员提高工作效率的15个技巧[Facebook] 作者: habadog 日期: 2015 年 02 月 13 日发表评论 (0)查看评论 程序员提高工作效率的15个技巧[Facebook] 1,D ...

  9. 线上操作使用tmux提高工作效率

    对于常常在线上操作的人来说有一种烦恼,就是在操作过程中,有事离开了一下,电脑自己主动睡眠了.然后网络断开连接.这时候任务就要又一次跑.非常烦恼. tmux能够解决问题. tmux能够看成虚拟屏幕,不受 ...

随机推荐

  1. 《手把手教你学C语言》学习笔记(9)--- 程序的选择控制

    C语言是面向过程编程语言的主要代表,其特征就是严格控制程序的执行语句顺序,因此,C程序的主要结构控制就是顺序控制,以main函数为入口函数,根据控制,一条一条地执行语句.由于实际需求是很复杂的,只用顺 ...

  2. formal parameter

    formal parameter : [3.16] object declared as part of a function declaration or definition that acqui ...

  3. Codeforces Gym100814 I.Salem-异或 (ACM International Collegiate Programming Contest, Egyptian Collegiate Programming Contest (2015) Arab Academy for Science and Technology)

    这个题就是二进制,找两个数相应的二进制相对应的位置上数不同的最多的个数.异或写就可以. 一开始还想麻烦了,找出来最大的偶数和最大的奇数,最小的偶数和最小的奇数,但是这样想考虑的不全.因为范围比较小,直 ...

  4. 数据库索引实现原理—B_TREE

    数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询.更新数据库表中数据.索引的实现通常使用B_TREE.B_TREE索引加速了数据访问,因为存储引擎不会再去扫描整张表得到需要的数据:相反 ...

  5. Codeforces 371A K-Periodic Array(模拟)

    题目链接 K-Periodic Array 简单题,直接模拟即可. #include <bits/stdc++.h> using namespace std; #define REP(i, ...

  6. Google Cloud服务免费申请试用以及使用教程

    简介 Google Cloud Platform lets you build and host applications and websites, store data, and analyze ...

  7. 怎样在 CentOS 7.0 上安装和配置 VNC 服务器

    这是一个关于怎样在你的 CentOS 7 上安装配置 VNC 服务的教程.当然这个教程也适合 RHEL 7 .在这个教程里,我们将学习什么是 VNC 以及怎样在 CentOS 7 上安装配置 VNC ...

  8. 解决 java.sql.SQLException: Before start of result set

    java中使用如下代码做数据库连接,用以查询数据 *******************我是分割线************************************* try { Class.f ...

  9. 列表pagesize修改每页显示的数量失效

    ◇系统错误修复工具 >> 检测微表正确性 原因是删除一些数据导致记录与实际数据不符 转自:http://bbs.dedecms.com/269491.html

  10. VS中Debug模式和Release模式的区别

    一.Debug 和 Release 编译方式的本质区别 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.Release 称为发布版本,它往往是进行了各种优化,使得程 ...