You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power BI无分隔符时拆分列值为多行的技术求助

解决方案:基于已知颜色列表的精准拆分(Power Query实现)

核心思路是用你手中的完整颜色列表去匹配提取,而非尝试找分隔符拆分——因为你的数据本质是固定颜色集合的拼接,这是最可靠的方案。

具体操作步骤

1. 创建颜色参考列表

  • 打开Power Query编辑器,点击「主页」→「输入数据」,把所有完整颜色值(包括带空格、标点的,比如. Light blue、Neon Pink、Navy Blue (Royal))输入到单列表格中,将表格命名为ColorList,列名改为Color,选择「仅创建连接」后关闭。

2. 处理原始数据

  • 加载你的原始数据到Power Query编辑器(假设表名为OriginalData,列是ID和Values)。
  • 添加自定义列:点击「添加列」→「自定义列」,输入以下代码:
= List.Select(ColorList[Color], (color) => Text.Contains([Values], color))

这段代码会遍历颜色列表,把当前行Values中包含的所有颜色收集成一个列表。

  • 点击自定义列右侧的「展开」按钮,选择「到新行」,此时每个匹配到的颜色会拆分为单独一行,同时保留对应ID。
  • 删除原Values列,将自定义列重命名为Values,即可得到目标结果。

关键细节处理

  • 如果存在颜色包含关系(比如Blue和Navy Blue (Royal)),必须把长颜色放在颜色列表的前面,这样Text.Contains会优先匹配长值,避免误拆分。
  • 对于Green. Light blue这类带特殊符号的组合,只要颜色列表里包含Green和. Light blue,就能精准提取。

完整M代码示例(直接编辑高级编辑器)

替换OriginalData和ColorList为你的实际表名即可使用:

let
    Source = OriginalData,
    #"Added Custom" = Table.AddColumn(Source, "MatchedColors", each List.Select(ColorList[Color], (color) => Text.Contains([Values], color))),
    #"Expanded MatchedColors" = Table.ExpandListColumn(#"Added Custom", "MatchedColors"),
    #"Removed Columns" = Table.RemoveColumns(#"Expanded MatchedColors",{"Values"}),
    #"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"MatchedColors", "Values"}})
in
    #"Renamed Columns"

内容的提问来源于stack exchange,提问作者Sweepster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 22:43:28