基于分隔符拆分文本文件行列:Power BI数据转换求助
解决思路:用Power Query搞定非结构化文本转规范表格
你的文本属于重复的键值对块结构,直接用默认分隔符拆分肯定踩坑,得用Power BI里的Power Query来一步步拆解。我给你梳理下具体操作步骤,亲测有效:
第一步:加载文本并整理原始数据
- 打开Power BI,点击获取数据 > 文本/CSV选中你的文件。
- 要是加载后出现奇怪的列(比如只有两列),先把所有列合并成一列:
- 选中所有列,点转换 > 合并列,分隔符选「自定义」,随便输一个文本里没有的字符(比如
|),合并后把列名改成RawData。
- 选中所有列,点转换 > 合并列,分隔符选「自定义」,随便输一个文本里没有的字符(比如
- 拆分每个
<SUB>块成单独行:- 选中
RawData列,点转换 > 拆分列 > 按分隔符,分隔符输<SUB,然后选择「拆分为行」,这样每一行就变成A=a; B=b; C=c; D=d <END这种单独的片段了。
- 选中
- 删掉末尾的
<END>:- 选中拆分后的列,点转换 > 替换值,查找值输
<END,替换为空,确定就行。
- 选中拆分后的列,点转换 > 替换值,查找值输
第二步:拆分键值对并转成目标表格
- 把每个片段拆成单独的键值对:
- 选中清理后的列,点转换 > 拆分列 > 按分隔符,分隔符输
;,还是选「拆分为行」,现在每一行就是A=a、B=b这种单独的键值对了。
- 选中清理后的列,点转换 > 拆分列 > 按分隔符,分隔符输
- 拆分键和值:
- 选中这列,点转换 > 拆分列 > 按分隔符,分隔符输
=,拆成两列,分别命名为Key和Value。
- 选中这列,点转换 > 拆分列 > 按分隔符,分隔符输
- 透视成规范表格:
- 选中
Key列,点转换 > 透视列,值列选Value,高级选项里选「不要聚合」,这时候你要的A、B、C、D列就出来了,每一行对应一组数据!
- 选中
小提示:处理异常情况
- 要是文本里的分号前后没有空格(比如
A=a;B=b),先做一步替换:用替换值把;换成;,保证分隔符统一。 - 如果有的
<SUB>块缺了某个键(比如少了C),透视后对应的单元格会显示null,你可以再用替换值把null换成空字符串或者你需要的默认值。
这样操作下来,就能得到你想要的规范表格啦,核心就是先把重复的块拆成单行,再拆解键值对,最后透视成列。
内容的提问来源于stack exchange,提问作者Longora
相关产品推荐
相关产品推荐

