从系统里导出来的名单,姓名工号电话全挤在一列里:Excel 分列加两个文本函数,把粘成一团的数据理顺

月底赶表的时候,最让人手心冒汗的不是数字算不对,是拿到的数据根本不像个表。从业务系统里导出来的名单,一整列里挤着姓名、工号、电话,中间用空格或者逗号隔着;从网页上复制下来的报表,粘进 Excel 全挤在 A 列;考勤机导出的记录,日期后面还跟着一串看不出是什么的字符。要用的人对着屏幕坐一会儿,最后打开一个新表,开始一格一格手抄。

手抄两百行,一个下午就出去了,抄完还不一定对。电话抄错一位,打过去是空号;工号抄漏一个零,跟财务的表对不上。更冤的是有人抄完发现,这活下个月还得再干一遍——数据每月导一次,格式一模一样地乱一次。

会议室长桌上铺开几张完全空白的表格纸,旁边放着红蓝铅笔、老式按键计算器和素色马克杯,清晨日光,全景,没有电子屏幕

导出来的数据为什么这么脏?因为系统那头的导出功能,本来是给人看的,不是给表算的。它把一行记录拼成一句话,中间加点分隔符,看着整齐,打印出来也好看;可到了表格里,一列就是一列,里面挤着三样东西,排序、筛选、比对全用不上。认清这一点,处理起来心里就顺了:不是自己不会用 Excel,是原始数据还没变成表。

分列这一步,两种分法要选对

Excel 的“数据—分列”是干这活的正主。选中那一列,走一遍向导,头一个选择就是两种分法:按分隔符号,还是按固定宽度。判断很简单——每行都用同一个符号隔开的,用分隔符号;每样东西的字数都一样、靠位置对齐的,用固定宽度。选错了分法,出来的结果比原来更乱。

分隔符号那条路,向导里可以勾空格、逗号、分号,也能自己填一个别的字符。要留神两处:一是连续两个空格会分出一个空列,勾上“连续分隔符视为单个处理”就好;二是从网页上复制来的数据,逗号可能是全角的,看着跟半角一样,勾了逗号却分不开。碰上分不动的,先用查找替换把全角逗号换成半角,再来分列。

固定宽度这条路适合那些从主机系统或者旧程序里打出来的清单——每样东西占几位是定死的,日期六位、工号八位、后面跟着名字。向导第二步里在标尺上点几下加分隔线,多点了可以拖走。这条路最怕的是数据里混进了长短不一的行,一遇上就全错位,分完必须抽查几行。

还有一步几乎人人栽过:分列会覆盖右边的列,分之前一定要先插足够的空列。一列分成三份,右边至少空出两列;不插,右边好好的数据就被顶掉了,而且 Excel 只提示一句“是否替换目标单元格内容”,手快点了确定,前面的活白干。稳妥的办法是把这一列复制到一张空白表上分,分完再贴回去。

工号前面的零,别让它掉了

分列向导的第三步,很多人直接点了完成,麻烦就出在这一步。这一步能给每一列指定格式,默认是“常规”——常规的意思是 Excel 自己猜。它一猜,工号 007 变成 7,长串的编号变成科学记数那种带 E 的样子,看着像乱码;日期“08-04-29”也可能被理解成别的月份。

解法是在第三步里,把工号、电话、编号这类列点一下,格式选“文本”。文本的意思是原样收下,一个字符都不动。凡是不参加计算的数字,都该当文本处理——电话、工号、身份证号、银行账号,它们长得像数字,其实是编号。这句话记住了,能省掉后面一堆返工。

分完列还不算完。看着干干净净的两列,用 VLOOKUP 一比对,一半查不到,明明表里就有这个人。多半是前后带了空格——从网页和系统里出来的字符,尾巴上常挂着看不见的东西。这种毛病肉眼看不出来,点进单元格看光标停在哪儿才知道。

治它的是两个函数。TRIM 去掉前后多余的空格,词与词之间的多个空格也压成一个;CLEAN 清掉那些打印不出来的控制字符。写成一列辅助公式,往下一拉,然后选择性粘贴成数值,把原来那列换掉。比对之前先 TRIM 一遍,是个不吃亏的习惯。查不到的时候再想起它,已经耽误了半小时。

分隔符不老实的时候,分列就顶不住了。比如有的行“姓名 工号”,有的行“姓名 工号 部门”,位置全不一样。这种要靠 LEFT、RIGHT、MID 配着 FIND 来切:FIND 找出那个符号在第几位,LEFT 取前面的,MID 从它后面开始取。写起来麻烦一点,好处是每月导出的新数据,把公式往下一拉就完事,不用重走一遍向导。

这里有个判断的分寸:一次性的活用分列,手动快;每月要重复的活写公式,一次麻烦长期省事。搞混了就吃亏——为一张只用一次的表写半天公式,或者每个月手工分列二十次,两头都是白费力气。

动手之前还有个规矩,老手都守着:原始数据先留一份副本,别在导出来的那张表上直接改。分错了、公式拉串了,回头还能重来;在原表上改,改废了只能回系统再导一次,导出来的口径未必跟上回一样,对不上账更麻烦。

处理完,抽查是最后一道关。挑十行,跟原始数据逐个字对:名字有没有串行、电话是不是十一位、工号前面的零在不在。抽查十行花两分钟,漏了错要在月底汇总的时候才发现,那就是另一个下午。

这些动作合起来,一个下午的手抄能压到十几分钟。真正拉开差距的不是谁函数记得多,是有没有把这套顺序走顺:先备份,插空列,分列选对分法,编号列设文本,TRIM 一遍,抽查十行。顺序对了,慢慢做也不会错;顺序乱了,手快也是白忙。

分完列还得留神日期。有些系统导出来的日期看着是“2008-04-29”,分列的时候一不小心就被当成算术处理,年份月份颠三倒四;更隐蔽的是它明明显示成日期,实际还是文本,拿去算天数差的时候公式报错。日期列在分列第三步也该点成文本,要算的时候再用函数拆成年、月、日三列去拼,比赌它自动认格式稳当。这一步看着多此一举,等到月底要对时间账的时候,省的是重新导一遍的工夫。

最后提醒一句,分列向导每走一遍都会重写那一列。要是上回分错了,这回在原表上又分一遍,右边插的空列不够,新错叠着旧错,越分越乱。每回动手前先把那列复制到一张空白表上试,分顺了再回头处理正式的那张,这个习惯比任何技巧都管用。

假前最后一个工作日,那张名单终于分成了五列,排序、筛选都听话了。表存成两个文件,一个带日期的原始副本,一个理干净的,一并发给要用的人,附一句“工号那列是文本,别改格式”。窗外走廊上有人在议论小长假只有三天,够不够去山里转一圈。桌上台历翻到月底那一格,红笔圈着,圈里两个字:交表。

相关推荐