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

程序员如何巧用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='[email protected]', contact_mobile='13758494357' WHERE disabled = 0 AND supplier_seller_code = 'A000001'; UPDATE supplier_seller SET supplier_seller_name = '北京每日优鲜电子商务有限公司', contact_name='曾斌', contact_email='[email protected]', 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数据,我需要从数据库中查询出这些门店的数据。

img

操作方法如下图所示:

img

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

img

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

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

img

操作方法如下图所示:

img

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

img

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中,提示如下信息(如果语句长度少的话,不会出现):

img

img

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

img

2.查找重复项

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

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

img

2.1新建规则

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

img

2.2设置重复值格式

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

img

img

2.3筛选重复数据

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

img

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

img

2.4清除规则

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

img

3.单元格内容拆分

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

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

img

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

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

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

img

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

img

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

img

img

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

img

4.永久取消超链接

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

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

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

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

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

img

img


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

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

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

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

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

1.拼接Sql字符串

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

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

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

img

操作方法如下图所示:

img

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

img

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

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

img

操作方法如下图所示:

img

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

img

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中,提示如下信息(如果语句长度少的话,不会出现):

img

img

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

img

2.查找重复项

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

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

img

2.1新建规则

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

img

2.2设置重复值格式

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

img

img

2.3筛选重复数据

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

img

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

img

2.4清除规则

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

img

3.单元格内容拆分

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

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

img

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

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

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

img

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

img

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

img

img

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

img

4.永久取消超链接

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

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

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

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

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

img

img

猜你喜欢

转载自www.cnblogs.com/Leo_wl/p/10957926.html