发布日期:2026-06-06 浏览次数:6
刚入职的数据分析助理小刘,接到了第一周的"见面礼"——一份从公司旧系统导出的客户信息表。5000行数据,每一行只有一个单元格,里面塞满了用逗号拼接的信息:"张三,男,1988,研发部,高级工程师,2015-03-01"。
"把它拆成六列,姓名、性别、出生年份……" 主管轻描淡写地说。
小刘深吸一口气,准备开始手工——复制、粘贴、复制、粘贴——然后他旁边的老员工拍了拍他的肩膀:"别急,先学学分列。"
十分钟后,5000行数据被拆成了规整的六列。小刘对 WPS 表格的认知从此被刷新。
这是数据清洗中最常见的场景:数据以各种奇怪的方式粘在一起,你需要把它们拆开;或者反过来,分散在多个单元格的信息需要拼成一段完整的文本。本文通过七种方法,系统讲解 WPS 表格中的分列与合并操作,覆盖你工作中会遇到的实际场景。
分列向导是 WPS 表格内置的专属拆分工具,适合处理具有明显分隔符的数据,也是应对"一列变多列"最常见的方法。
典型场景:单元格内容为"张三,男,1988,研发部",以逗号分隔,需拆为四列。
操作步骤:
关键提示:拆分身份证号、银行卡号等长数字时,第3步必须将该列格式设为"文本",否则18位身份证号的最后三位会变成0。
当数据之间没有统一的分隔符,但位置固定时,使用固定宽度拆分。
典型场景:身份证号前6位是地区码,中间8位是出生日期,后4位是顺序码。没有分隔符,但宽度固定。
操作步骤:
WPS 2019 及以上版本支持智能填充(类似Office的快速填充Flash Fill),通过 Ctrl+E 一键触发。
使用方式:
Ctrl+E。优点:零操作门槛,直观快速。
局限性:
Ctrl+E。适用场景:一次性、有规律、数据量不大的快速拆分。
如果你的 WPS 版本较新(2023及以上),TEXTSPLIT 是最简洁的分列函数。
语法:=TEXTSPLIT(文本, 列分隔符, 行分隔符)
示例:A1 为"张三,男,1988,研发部"
结果:自动溢出为四个横向单元格:张三 | 男 | 1988 | 研发部。
对于低版本 WPS 或不支持新函数的场景,经典组合拳永远可靠。
提取第一段(LEFT + FIND):
提取逗号前的内容(姓名):
逻辑:找到第一个逗号的位置,取它左边的内容。
提取中间段(MID + FIND):
提取第二个逗号和第三个逗号之间的内容:
公式较长但逻辑清晰:计算起点和长度,用MID提取。这就是嵌套FIND定位多个分隔符的典型案例。
提取最后一段(RIGHT + 反向查找):
提取最后一个逗号后的内容:
原理:用SUBSTITUTE计算逗号总数,将最后一个逗号替换为@后用FIND定位,再用RIGHT提取。
如果函数组合让你感到头疼,不用强求——分列向导在绝大多数场景下已经足够好用。函数分列的真正价值在于:当你需要自动化、可重复、随源数据联动更新时,它是唯一的选择。
& 是 WPS 表格中最简单的文本连接运算符。
示例:
| A | B | C |
|---|---|---|
| 张三 | 研发部 | 高级工程师 |
结果:张三,就职于研发部,职位为高级工程师
要点:
CHAR(10) 表示,如 =A1 & CHAR(10) & B1,会显示为两行。结果:张三-研发部-高级工程师
与 & 功能完全一致,仅为书写风格差异。多参数时 & 更简洁,参数动态时两者等效。
如果你的 WPS 版本支持 TEXTJOIN(2019及以上),这是合并操作的最优解。
语法:=TEXTJOIN(分隔符, 是否忽略空值, 文本1, 文本2, ...)
三大经典场景:
场景一:合并整行,用顿号分隔
结果:张三、男、1988、研发部、高级工程师、2015-03-01、北京
场景二:合并区域,忽略空单元格
第二个参数 TRUE 表示跳过空值,这样不会出现"张三;;李四"的尴尬。
场景三:多列合并为邮件列表
一键生成50人的分号分隔邮件列表,直接复制到邮件收件人栏。
TEXTJOIN 的碾压性优势:
直接将A1到G1的内容拼在一起,无分隔符。适合身份证号前6位+出生日期+后4位的无间隔合并,或生成连续编号等不需要分隔符的场景。
原始数据:A列 = "北京市-朝阳区-望京街道"
分列方案:分列向导→分隔符号→勾选「其他」→输入 - →下一步→完成。
一键拆出省、市、区三列。如果地址中存在多个"-",分列向导会把所有段都拆出来,删除多余列即可。
原始数据:A列 = 18位身份证号(如110101199003071234)
方案一(固定宽度):分列→固定宽度→在第6位和第14位处添加分列线→中间列为出生日期→格式选"日期:YMD"。
方案二(MID函数):
提取第710位为年,第1112位为月,第13~14位为日,用DATE函数拼成真正的日期值(可参与计算和排序)。
原始数据:A列=张三,B列=EMP0188
需求:生成"张三(EMP0188)"格式。
方案:
原始数据:A1 = "北京 | 海淀;产品部, 张三"
这种同时含"|"";"", "三种分隔符的混乱数据,直接用分列向导会出问题——一次只能处理一种分隔符。
方案:用SUBSTITUTE函数先统一分隔符:
把所有乱七八糟的分隔符都替换为逗号,再用TEXTSPLIT一次性拆开。
原始数据:A列=部门,B列=姓名。每个部门有多人。
需求:将每个部门的人员汇总到一个单元格中,用"、"分隔。
方案:使用 TEXTJOIN + IF 数组公式(或用WPS的「数据」→「分类汇总」配合TEXTJOIN手动操作)。对于小数据量,在排序后直接选中同一部门的姓名区域,用 =TEXTJOIN("、", TRUE, 选中区域) 即可。
原始数据:A1 = "张三13812345678"
这种连在一起的混合数据,没有分隔符,但有一个规律:中文姓名后紧跟数字。
方案(用函数分离):
提取姓名:
原理:中文每个字符在LENB中计为2,在LEN中计为1。两者之差就是中文字符数(前提是不含全角符号干扰)。
提取手机号:
用总字符数减去中文字符数,得到数字字符数。
分列操作会直接覆盖或修改原始数据。强烈建议在分列前:
一旦分列出错且没备份,丢失的数据可能需要从系统重新导出。
身份证号、银行卡号、订单号等长数字(超过15位),在分列时必须将列格式设为「文本」。否则:
这是Excel/WPS表格精度的固有限制(15位有效数字),不是操作错误,但结果一样致命。
=A1 & B1 生成的是文本,不是数字。如果你用 & 把销售额和单位合并成了"1200万元",这个单元格就不能再参与求和等数值运算了。
原则:原始数值保留在独立列中,合并后的文本仅用于展示,不替代原始数据。
用分列向导拆分时,确保选择的分隔符在数据内部不会出现。例如,用逗号拆分地址"北京市朝阳区,望京街道,3号楼"是安全的,但拆分"请注意,该数据已更新,请查验"就会拆出四段而非三段。
面对一道分列或合并题,如何快速选择正确的方法?按以下路径判断:
分列与合并是 WPS 表格数据清洗中使用频率最高的操作。它们并不复杂,但方法众多,知道"什么时候用哪个"才是效率的分水岭。
四个核心建议:
掌握了这些方法,你面对任何"黏在一起"或"散落各处"的数据,都有对应的武器库。数据清洗不再是体力活,而是几分钟的智力解题。
没有相关标签