“我们公司的IT连VLOOKUP都不会”
“我就想把二维表转一维表,我BF居然说要等他有空敲代码才行”
在他们的心里,专业CS出身的程序员们该当是通吃所有软件问题的,包括且不限于Excel。

但这明显属于误解,由于大部分程序员平时事情中与Excel很少有交集,不会VLOOKUP而且凡事都想撸代码办理是正常征象。程序员是信息时期的王者,所谓没有什么事情是一行代码搞不定的,如果弗成,那就再写几行。
什么,你真的不会?好吧,VLOOKUP是Excel里面用于表查询的一个经典函数,不知道没紧要,以程序员的资质,1分钟就能学会。
讲解VLOOKUP不是本文的重点。但是下次如果有小姐姐问你,建议你速学,而不是惯性的打开你的VS Code。
我也有很多程序猿和攻城狮朋友,偶尔会帮他们办理Excel方面的小问题。我一贯有一个不雅观点,任何人这辈子都一定会遇上Excel,提前轻微理解一下,点亮这棵技能树,是很有代价的。况且,对付有深厚功底的程序员来说,学Excel的速率肯定是普通人的10倍。下面,我就用几个例子来分享一下,哪怕是程序员也可以借助Excel提高拔剑的速率!
01 拼接SQL条件语句
比如业务部门冷不丁发给你一张表格,让你在后台把这些数据处理一下。
这是个临时任务,你须要写一条SQL语句,无论是UPDATE还是DELETE,都须要条件语句,这几十个数据怎么快速写成条件语句呢?
先说重点:如果数据已经在Excel里面了,你要坚信Excel便是最有办法最省力的工具。
我们可以在B2写入公式:
=B1&","&"'"&A2&"'"
双击B2右下角的添补柄,自动复制公式到整列。
末了直接复制B25单元格,粘贴到你的SQL编辑器里面,轻微编辑一下,就大功告成啦。
&在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';"
这样,第一条语句就完成了。
选中A1:B1,往下复制公式到A10:B10,就得到了全部所需的SQL语句!
利用这样的拼接思路,可以方便的完成各种程序措辞里面的“重复代码”,大家可以根据实际情形灵巧处理。
03 处理重复记录
在开拓和运维过程中,不可避免的要面对重复数据,虽然始作俑者不是自己,但须要加班处理的多数是自己。
比如业务部门供应的数据表中,device_no可能有重复的,这些重复还不能大略的处理掉,得先标记出来再人肉核对。
重复一遍主要的话:如果数据已经在Excel里面了,你要坚信Excel便是最有办法最省力的工具。
面对这种情形,只须要先选中数据表的任意单元格,然后单击【开始】选项卡下面的【条件格式】→【突出显示单元格规则】→【重复值】就能办理。
嗯,然后所有的重复的值就被标记出来了。
现在右击B2,也便是第一个被标记的单元格,在弹出的快捷菜单中单击【筛选】→【按所选单元格的颜色筛选】。
这样就筛选出了所有的重复记录。
此外,Excel还供应了“删除重复项”功能可以直接删除重复记录,也可以利用COUNTIF函数打消第1次之后的重复项或者末了一次之前的重复项,都非常方便。
04 分拆与重组数据
在Excel中,利用“分列”功能或者文本函数可以将字符串的内容分拆到多个单元格中。从Excel 2013开始,更智能的“快速添补”功能涌现了。
以下表为例。
如果希望从B、C列中将主型号和发布年份分拆到D、E列中,可以这么操作:
在D2单元格中输入FSA,选中D3单元格,按<Ctrl+E>组合键;
在E3单元格中输入2016,选中E3单元格,按<Ctrl+E>组合键;
须要的信息瞬间就拆分出来了。
假设新型号的命名规则是城市编码-主型号-年,可以在F2单元格中输入025-FSA-2016,然后选中F3单元格,按<Ctrl+E>组合键。
把稳,刚才的分拆操为难刁难于打算新型号不是必须的。
05 总结
每个人碰着问题都会优先利用自己最熟习的工具来处理,由于这样风险最低,效率最高。
但实际上每种工具都有自己的上风和适用场景,以是我们不要有局限性,乃至有“鄙视”情节,多理解一些工具可以提升我们的面对各种问题的综合应对能力。用程序员的话来说,能用现成的轮子就用现成的,没用必要重新造轮子。既然数据在Excel里面,而Excel已经有了无数的轮子,我们为啥不用呢?
以上内容基于我个人的履历,对大家算是抛砖引玉吧。我相信也有很多程序员的Excel水平比我厉害的多,希望你们也来分享一些秘技!
末了,我想说,什么.net 、java 、python、 php,Excel才是最厉害的!
哈哈哈。