Excel用PowerQuery清洗拆分复杂格式文本
使用PowerQuery按分隔符拆分列,可处理单元格内混合编号、名称等复杂文本。选择合适分隔符(最左侧、每个出现或最右侧),可拆成多列或多行。再修整空格、改列名、调数据类型,加载回Excel后刷新即可自动更新。注意保留前导零与主键列。
在处理Excel表格时,经常遇到那种将编号、名称、地址、电话、备注全部塞进一个单元格里的情况。很多人第一反应是堆一长串LEFT、MID、FIND函数,但说实话,这种方式不仅容易出错,修改起来也很费劲。其实有一个更省心、更靠谱的解法——把数据交给Power Query,按分隔符拆列,再统一清除空格、修改列名、调整数据类型,最后点击“关闭并加载”就能直接回到工作表中使用。
找到Power Query里的拆分列入口
先选中要处理的源数据区域,点击顶部“数据”选项卡,将表格加载到Power Query编辑器。进入编辑器后,选中目标文本列,在“主页”或“转换”选项卡下找到“拆分列”(Split column)入口,然后选择“按分隔符拆分”(By delimiter)。
这里有两个细节需要确认:一是要拆分的列已经选中,功能区能看到拆分列菜单;二是如果源数据第一行不是表头,记得先通过“将第一行用作标题”把第一行提升为字段名,否则拆出来的列名会带自动生成的后缀,导回工作表后还需要额外修改。
先摸清楚原始列的分隔规律
拆列之前,先扫一遍原始文本的全部内容,不要一看到空格就急着动手。举个例子,账号列内容是“101 Bank/Cash at Bank”,前面数字编码和后面名称之间确实有一个空格,但名称内部也自带空格。如果直接按所有空格拆分,完整名称就会被拆得七零八落。
遇到这种情况,关键是找到真正稳定的分隔点。如果只需要把编码和名称拆成两列,一般选择最左侧第一个分隔符就够了;要是单条记录里存了多个项目,比如“产品A,产品B,产品C”,那就要考虑按每一个出现的分隔符拆成多列或者多行。

在弹窗里选对分隔符规则
打开“按分隔符拆分列”的对话框后,先在“选择或输入分隔符”中选对应的分隔符。常用的空格、逗号、分号、冒号、斜杠都在列表中,也可以手动输入自定义的特殊字符。如果只想把编码和名称拆成两部分,“拆分位置”选“最左侧分隔符”即可。
如果是“省-市-区”这种结构,想一次性拆成三列,就选“每次出现分隔符时”。要是只想从最后一个斜杠后面提取文件名,就选“最右侧分隔符”。Power Query最方便的地方在于,所有操作步骤都会记录在右侧的应用步骤栏里,选错了直接删除对应步骤重来就行,完全不用担心搞砸。

检查拆分后的内容有没有错位
点击“确定”之后,Power Query就会把原来的文本拆成多列。先快速扫一遍结果:第一列是不是只剩编号,第二列是不是保留了完整名称。如果出现名称被拆成好几段、多出空列、部分行内容错位的情况,说明刚才的分隔规则选得不对,回到右侧应用步骤删除拆分步骤重新设置即可。
确认拆分没问题之后,再把列名改得清晰好懂,比如改成“账户编号”“账户名称”。这里有一个细节:如果编号需要保留前面的0,千万别直接把列改为数字类型,要保留成文本格式;普通的纯数字编码就可以改为整数类型,加载回Excel之后格式会更干净。

单条记录拆成多行就选拆分到行
如果单元格里存了多个项目,比如一个订单号对应多件商品,不要直接拆成一大堆列。还是在刚才的拆分对话框里,点开高级选项,把“拆分为”改成“行”,这样每个拆分出来的项目各占一行,后面做透视表、筛选、统计都方便很多。
拆分到行之前,先确认好主键列:订单号、客户名、日期这类字段要跟着每一行同步保留,否则拆完根本不知道每个商品属于哪条原始记录。Power Query会自动把其他列的内容同步复制到新生成的行里,这也是它比手动写公式更适合清洗复杂文本的原因。

整理好列再加载回Excel
拆完列或者行之后,最后再补三步操作:删除不需要的冗余列,清掉所有内容首尾的多余空格,把列名和数据类型都调整到位。文本里的多余空格可以直接用“转换”选项卡下的“修整”功能一键处理;要是列名还带着自动生成的后缀,手动改成看得懂的业务名称就行。
确认最终的表格没有错位、空列、多余的残留分隔符之后,再点击“关闭并加载”回到Excel。之后源数据新增行时,只要点击一下刷新查询,Power Query就会按之前设好的规则自动完成清洗拆分,再也不用手动重写一遍公式。

