PowerBI技术咨询:如何按指定规则将一列拆分为三个新列
PowerBI 列拆分实现方案
针对你需要将一列拆分为Left、数字列、Right列的需求,以下是两种可行的实现方式:
方式一:Power Query 预处理(推荐,适合批量数据清洗)
- 进入Power Query编辑器:选中目标数据列,点击「转换」→「编辑查询」
- 添加Left列
- 点击「添加列」→「自定义列」,输入公式(替换
[你的原列名]为实际列名):= if Text.IsLetter(Text.Start([你的原列名], 1)) then Text.Start([你的原列名], 1) else "" - 重命名列名为「Left」
- 点击「添加列」→「自定义列」,输入公式(替换
- 添加Right列
- 再次添加自定义列,输入公式:
= if Text.EndsWith([你的原列名], "W") then "W" else "" - 重命名列名为「Right」
- 再次添加自定义列,输入公式:
- 添加数字列(去除百分号)
- 添加自定义列,输入公式:
= let removePrefix = if Text.IsLetter(Text.Start([你的原列名],1)) then Text.Range([你的原列名],1) else [你的原列名], removeSuffix = if Text.EndsWith(removePrefix, "W") then Text.Range(removePrefix, 0, Text.Length(removePrefix)-1) else removePrefix, cleanNum = Number.From(Text.Remove(removeSuffix, "%")) in cleanNum - 重命名列名为「数字列」(可自定义名称)
- 添加自定义列,输入公式:
方式二:DAX 计算列(适合报表内实时计算)
在报表视图中,依次添加以下计算列(替换'表名'[原列名]为实际表名和列名):
- Left列:
Left = IF(ISERROR(VALUE(LEFT('表名'[原列名],1))), LEFT('表名'[原列名],1), "") - Right列:
Right = IF(RIGHT('表名'[原列名],1) = "W", "W", "") - 数字列:
数字列 = VALUE(SUBSTITUTE(SUBSTITUTE('表名'[原列名], [Left], ""), IF([Right]="W", "W", "") & "%", ""))
内容的提问来源于stack exchange,提问作者Kelvin Bala
相关产品推荐
相关产品推荐

