如何在Power Query中按内容拆分列?解决缺失值错位问题
Power Query 拆分含缺失前缀的键值对列方法
原始数据
| Column A |
|---|
| spa:34,spd:76 |
| spa:21 |
| ,spd:2 |
| spa:99,spd:12 |
目标效果
| Column A | Column B |
|---|---|
| spa:34 | spd:76 |
| spa:21 | |
| spd:2 | |
| spa:99 | spd:12 |
解决方案
方法一:按键精准提取(推荐,彻底避免错位)
直接根据spa:和spd:标识提取对应内容,步骤如下:
- 在Power Query编辑器加载数据后,点击「添加列」→「自定义列」,输入以下公式提取
spa相关内容,完成后将列重命名为Column A:if Text.Contains([Column A], "spa:") then "spa:" & Text.BeforeDelimiter(Text.AfterDelimiter([Column A], "spa:"), ",") else "" - 再次添加自定义列,输入以下公式提取
spd相关内容,完成后将列重命名为Column B:if Text.Contains([Column A], "spd:") then "spd:" & Text.AfterDelimiter([Column A], "spd:") else "" - 按需删除原始的
Column A列即可。
方法二:修正逗号拆分后的错位问题
如果已经用逗号拆分得到Column A.1和Column A.2列,可通过判断内容修正错位:
- 选中拆分后的第一列(
Column A.1),添加自定义列并输入公式修正内容:if Text.StartsWith([Column A.1], "spd:") then "" else [Column A.1] - 选中拆分后的第二列(
Column A.2),添加自定义列并输入公式修正内容:if Text.StartsWith([Column A.1], "spd:") then [Column A.1] else [Column A.2] - 删除原始拆分列,将新生成的两列重命名为Column A和Column B。
内容的提问来源于stack exchange,提问作者danhar
相关产品推荐
相关产品推荐

