夜雨聆风学习资料网

ARTICLE · 1238807

Excel一个单元格塞了两样,拆开不用写公式

Excel一个单元格塞了两样,拆开不用写公式

· · ·

上周二在部门群里,我看到行政的小张发了个求助。

她要做一份员工信息汇总表,从系统里导出来的原始数据长这样:一列"姓名电话",里面是"张三 13800001111"这种写法,一列"部门岗位",里面是"销售部-客户经理"。

她要在表格里按电话找人、按岗位统计人数。

结果筛选一开,全是乱的——按电话搜不到,按岗位也搜不到,因为一整个格子里,电话和名字黏在一起。

她在群里问:"有没有什么函数能把字切开?"

下面有人回 LEFT+RIGHT+FIND,有人回 TEXTSPLIT,还有人直接甩了个在线工具链接。

我看了一眼她的表,回了一句:你先别写公式,点两下就行。

先说我踩过的坑

我这不是凭空说的。上个月我自己在这事上折腾了小半天。

当时我手上是一份从系统导出的客户名单,一列"客户名称"里全是"上海某某科技有限公司",后面跟着一列"联系人备注",内容五花八门。

我想把备注里的手机号单独拎出来。

第一反应是写公式。FIND 找空格位置,MID 截取,一套下来写了一长串。写完拉下去,有一半是错的——因为备注里有的用空格分隔,有的用顿号,有的根本没有分隔符,直接把号码糊在名字后面。

我又改成按长度截取,取右边 11 位。这个更惨,因为有些号码前面带了"+86",截出来就错位了。

那半天我干的事,全在跟数据格式的脏乱差较劲,而不是在干活。

后来我退出来重新看这张表,发现一件很蠢的事:这堆数据本来是有分隔符的,是我自己没看见。

它的原文是"张三 13800001111",中间那个空格是真的空格,不是全角符号也不是特殊字符。只要按空格切,一次就成。

真正省事的两个按钮

Excel 里有个功能叫"分列",在"数据"选项卡底下,长得一点都不起眼。

我没用过之前一直以为它是给 CSV 用的,后来才发现是给这种"一格塞两样"的情况准备的。

操作就三步:

选中那一列,点"数据"→"分列",然后它问你是按分隔符号分还是按固定宽度分。

按分隔符号分,就是告诉它"你按空格切"。分隔符那一栏有一堆勾选项:制表符、分号、逗号、空格,还有"其他"。你把对应那个勾上,下面会有一块预览,能直接看到切完之后长什么样。

这一步很关键——预览里能看见结果,切错了当场就能改。比写完公式拉下去发现全错再回头查,省的不是一点半点。

第二部分,就是"部门岗位"里那个"-"。

这个我一开始也没想到。我以为只认逗号空格,后来在"其他"那一栏里手输了"-",切出来干干净净。

所以这类活的核心不是记快捷键,是先搞清楚数据里真正的分隔符是什么。你把它找出来,分列一次就完事;找不出来,公式写得再花也没用。

小张那张表的问题

她的情况分两段。

"姓名电话"那列,分隔符是空格,直接按空格切,两秒完事。

"部门-岗位"那列,我在"其他"里填了"-",也切开了。

但切完之后出了个新问题:切出来的电话列变成了数字,而且长这样——1.38E+10。Excel 自动把 11 位数字当数值处理,显示成了科学计数法。

这个坑我之前写过(身份证变 E+17 那篇),当时没注意到分列这一步也会踩。

解决办法有两个:

一个是分列到最后一步时,在"列数据格式"那里选"文本",而不是默认的"常规"。这一步很多人直接点"完成"就跳过了,结果切出来的数据格式全不对。

另一个是已经切坏了,选中那列,格式改成文本,然后重新输入一遍。或者更土的办法:在号码前面加个英文单引号。

我自己的习惯是分列的时候就把格式选好,别指望事后补救。

有一类数据,分列也救不了

说完好用的,说说不管用的。

如果数据里根本没有分隔符,比如"张三13800001111"这种一字排开,分列会问你"按固定宽度分"。

按固定宽度切,就是你手动在预览里拉竖线,指定"从第 3 个字这里切"。这玩意一次只能处理格式完全一致的数据。

我试过用在这上面,结果因为名字有两个字的有三个字的,竖线放哪儿都不对,切出来一塌糊涂。

这种时候我选择放弃自动化,老老实实手动改。表不大就手动改,表大了先按名字长度排序,把同字数的分到一组,再分别在组里切——这招有点笨,但比写一堆嵌套公式有效。

我的判断标准很简单:能切就切,切不了就承认切不了,不硬凑。硬凑出来的公式,下次数据结构一变就得推倒重来,我吃过太多这个亏。

一个顺带发现的信息差

这次做表的时候我发现,分列还有个"整列自动调整"的小细节。

切完之后,新生成的那几列宽度是按原列均分的,看着很挤。这时候别一个一个拖边框,直接选中这几列,双击任意两列之间的分隔线,会按内容自动调到最合适的宽度。

这个动作很快,但大多数人是拖出来的,我拖了三年才发现双击就行。

另外一个:切完之后原列会被新列覆盖,如果原来那列后面本来就有数据,会被直接盖掉。所以切之前先把后面的列挪走,或者干脆复制一列出来再切。小张第一次操作就把"员工编号"那列盖掉了,然后又撤销重来一遍。

我最后留给小张的做法

我在群里回复她,就写了四条:

一,别写函数。先看数据里有没有分隔符。 二,有的话选中列,数据→分列→按分隔符号→勾或输入那个符号。 三,最后一步把列格式选成"文本",防止电话变科学计数法。 四,切之前把右边的列先挪开,别被覆盖。

她照着做,十分钟搞完了。后来还专门私聊我说,早问我就好了,折腾了一个下午。

我回她:我也折腾过,不怪你。

说点实在的

我做这类表格活这些年,最深的感受是:Excel 90% 的表格问题,不是函数不够用,是数据的形状不对。

一格塞两样,看起来省了一列,实际上把后面所有的筛选、统计、查找全废了。分列干的事,就是把它还原成"一格一件事"。

至于用哪个公式、哪个函数新出来的,那是第二步。第一步永远是先把数据摆正规。

你们手上有没有这种"一格塞两样"的表?是选择分列切开,还是忍着手动改?评论区说说,我看看还有没有我不知道的野路子。

本文由公众号原创 · 转载请注明出处

相关学习资料