如何将Excel单元格内的多序列号批量拆分至单独行?
Excel拆分多序列号到独立行并去重解决方案
一、公式法(适配旧版Excel)
步骤1:简化去括号公式
替换你现有的公式,用更简洁的写法提取无括号的序列号字符串:
=MID(E2,2,LEN(E2)-2)
(把E2替换成你的serial numbers列对应单元格,下拉填充所有行)
步骤2:拆分到独立行
假设原始数据列:A=model,B=test value,E=serial numbers(已处理括号),按以下操作:
- 计算每行序列号数量:在空白列(如F)输入公式,下拉填充:
=COUNTA(FILTERXML("<t><s>"&SUBSTITUTE(E2,", ","</s><s>")&"</s></t>","//s")) - 生成累计行号索引:G1输入
0,G2输入公式下拉:=SUM($F$1:F1)+1 - 提取对应model:H2输入公式下拉:
=INDEX(A:A,MATCH(ROW()-1,$G:$G,1)) - 提取对应test value:I2输入公式下拉:
=INDEX(B:B,MATCH(ROW()-1,$G:$G,1)) - 提取单个序列号:J2输入公式下拉,直到出现
#N/A后删除错误行:=INDEX(FILTERXML("<t><s>"&SUBSTITUTE(INDEX(E:E,MATCH(ROW()-1,$G:$G,1)),", ","</s><s>")&"</s></t>","//s"),ROW()-INDEX($G:$G,MATCH(ROW()-1,$G:$G,1)))
二、Power Query法(高效处理大量数据,含去重)
这个方法无需复杂公式,一键完成拆分+去重:
- 选中原始数据区域,点击「数据」→「从表格/区域」(确认表头存在),进入Power Query编辑器。
- 选中
serial numbers列,点击「转换」→「拆分列」→「按分隔符」:- 分隔符选「逗号」,高级选项勾选「拆分为行」。
- 清理括号和空格:选中拆分后的序列号列,点击「转换」→「替换值」:
- 先替换
(为空,再替换)为空;若有多余空格,用TRIM函数添加自定义列:
之后删除原序列号列,保留自定义列。=TRIM([serial numbers])
- 先替换
- 去重:点击「开始」→「删除重复项」,选择需要去重的列(如model、test value、serial numbers)。
- 点击「关闭并上载」,处理后的数据会自动导出到新工作表。
内容的提问来源于stack exchange,提问作者Chris Hall
相关产品推荐
相关产品推荐

