excel编程入门教程(程序员不可不知的Excel技巧)

Excel这个电子表格软件的主力用户群体是财务、HR以及各部门需要处理和分析数据的信息工作者。因为工作的关系,我和表哥表姐表弟表妹打的交道很多。于是我经常听到他们的吐槽:

“我们公司的IT连VLOOKUP都不会”

“我就想把二维表转一维表,我BF居然说要等他有空敲代码才行”

在他们的心里,专业CS出身的程序员们应该是通吃所有软件问题的,包括且不限于Excel。

但这明显属于误解,因为大部分程序员平时工作中与Excel很少有交集,不会VLOOKUP而且凡事都想撸代码解决是正常现象。程序员是信息时代的王者,所谓没有什么事情是一行代码搞不定的,如果不行,那就再写几行。

excel编程入门教程(程序员不可不知的Excel技巧)(1)

什么,你真的不会?好吧,VLOOKUP是Excel里面用于表查询的一个经典函数,不知道没关系,以程序员的资质,1分钟就能学会。

讲解VLOOKUP不是本文的重点。但是下次如果有小姐姐问你,建议你速学,而不是惯性的打开你的VS Code。

我也有很多程序猿和攻城狮朋友,偶尔会帮他们解决Excel方面的小问题。我一直有一个观点,任何人这辈子都一定会遇上Excel,提前稍微了解一下,点亮这棵技能树,是很有价值的。况且,对于有深厚功底的程序员来说,学Excel的速度肯定是普通人的10倍。下面,我就用几个例子来分享一下,哪怕是程序员也可以借助Excel提高拔剑的速度!

01 拼接SQL条件语句

比如业务部门冷不丁发给你一张表格,让你在后台把这些数据处理一下。

excel编程入门教程(程序员不可不知的Excel技巧)(2)

这是个临时任务,你需要写一条SQL语句,无论是UPDATE还是DELETE,都需要条件语句,这几十个数据怎么快速写成条件语句呢?

先说重点:如果数据已经在Excel里面了,你要坚信Excel就是最有办法最省力的工具。

我们可以在B2写入公式:

=B1&","&"'"&A2&"'"

双击B2右下角的填充柄,自动复制公式到整列。

excel编程入门教程(程序员不可不知的Excel技巧)(3)

最后直接复制B25单元格,粘贴到你的SQL编辑器里面,稍微编辑一下,就大功告成啦。

excel编程入门教程(程序员不可不知的Excel技巧)(4)

&在Excel公式里用于拼接字符串、数值或单元格。在本例的拼接过程中,使用的是单引号。如果在某些编程语言中需要拼接出双引号的效果,可以用下面的公式:

=B1&","&""""&A2&""""

02 SQL连续处理多张数据表

有些数据库因为使用了分表技术,同一类数据按既定规则保存在了某一张数据表中,如果偶尔需要按条件处理一个数据,就必须遍历所有的表。

比如,现在有device_list_0到device_list_9都用于存储设备相关信息,如果临时要删除device_no为78262170fa33的记录,事先不知道这条记录具体在哪张表,一个简单的方法就是直接每张表都删除一次。此时,可以借助Excel批量构造SQL语句。

打开Excel,在A1单元格写入公式:

= "'device_list_"&ROW()-1&"'"

在B1单元格写入公式:

="delete from "&A1&" where 'device_no' = '78262170fa33';"

这样,第一条语句就完成了。

excel编程入门教程(程序员不可不知的Excel技巧)(5)

选中A1:B1,往下复制公式到A10:B10,就得到了全部所需的SQL语句!

excel编程入门教程(程序员不可不知的Excel技巧)(6)

利用这样的拼接思路,可以方便的完成各种程序语言里面的“重复代码”,大家可以根据实际情况灵活处理。

03 处理重复记录

在开发和运维过程中,不可避免的要面对重复数据,虽然始作俑者不是自己,但需要加班处理的多半是自己。

excel编程入门教程(程序员不可不知的Excel技巧)(7)

比如业务部门提供的数据表中,device_no可能有重复的,这些重复还不能简单的处理掉,得先标记出来再人肉核对。

excel编程入门教程(程序员不可不知的Excel技巧)(8)

重复一遍重要的话:如果数据已经在Excel里面了,你要坚信Excel就是最有办法最省力的工具。

面对这种情况,只需要先选中数据表的任意单元格,然后单击【开始】选项卡下面的【条件格式】→【突出显示单元格规则】→【重复值】就能解决。

excel编程入门教程(程序员不可不知的Excel技巧)(9)

嗯,然后所有的重复的值就被标记出来了。

excel编程入门教程(程序员不可不知的Excel技巧)(10)

现在右击B2,也就是第一个被标记的单元格,在弹出的快捷菜单中单击【筛选】→【按所选单元格的颜色筛选】。

excel编程入门教程(程序员不可不知的Excel技巧)(11)

这样就筛选出了所有的重复记录。

excel编程入门教程(程序员不可不知的Excel技巧)(12)

此外,Excel还提供了“删除重复项”功能可以直接删除重复记录,也可以使用COUNTIF函数排除第1次之后的重复项或者最后一次之前的重复项,都非常方便。

04 分拆与重组数据

在Excel中,使用“分列”功能或者文本函数可以将字符串的内容分拆到多个单元格中。从Excel 2013开始,更智能的“快速填充”功能出现了。

以下表为例。

excel编程入门教程(程序员不可不知的Excel技巧)(13)

如果希望从B、C列中将主型号和发布年份分拆到D、E列中,可以这么操作:

在D2单元格中输入FSA,选中D3单元格,按<Ctrl E>组合键;

在E3单元格中输入2016,选中E3单元格,按<Ctrl E>组合键;

需要的信息瞬间就拆分出来了。

excel编程入门教程(程序员不可不知的Excel技巧)(14)

假设新型号的命名规则是城市编码-主型号-年,可以在F2单元格中输入025-FSA-2016,然后选中F3单元格,按<Ctrl E>组合键。

excel编程入门教程(程序员不可不知的Excel技巧)(15)

注意,刚才的分拆操作对于计算新型号不是必须的。

05 总结

每个人遇到问题都会优先使用自己最熟悉的工具来处理,因为这样风险最低,效率最高。

但实际上每种工具都有自己的优势和适用场景,所以我们不要有局限性,甚至有“鄙视”情节,多了解一些工具可以提升我们的面对各种问题的综合应对能力。用程序员的话来说,能用现成的轮子就用现成的,没用必要重新造轮子。既然数据在Excel里面,而Excel已经有了无数的轮子,我们为啥不用呢?

以上内容基于我个人的经验,对大家算是抛砖引玉吧。我相信也有很多程序员的Excel水平比我厉害的多,希望你们也来分享一些秘技!

最后,我想说,什么.net 、java 、python、 php,Excel才是最厉害的!哈哈哈。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页