You need to enable JavaScript to run this app. Power BI拆分固定格式文本列提取内嵌字段为独立列的方法
优惠活动
大模型
产品
解决方案
定价
更多

Power BI拆分固定格式文本列提取内嵌字段为独立列的方法

实现可行性判断

这个需求完全可以落地实现——目标列的文本遵循固定结构,三个待提取字段被固定的描述短语包裹,不存在结构变动、模糊匹配的风险,不管用Power Query做数据转换,还是用DAX写计算列,都能稳定批量提取独立的新列。

具体操作方法

优先推荐用Power Query实现,后续数据刷新时会自动同步提取新值,不需要重复手动操作;如果不想调整查询结构,也可以用DAX计算列完成轻量实现。

方法1:Power Query 转换(长期使用推荐)

  • 在Power BI桌面端选中对应数据表,点击「转换数据」按钮打开Power Query编辑器
  • 依次添加三个自定义列,公式里的原列名替换成你实际的列名即可:
    • 提取User字段:Text.BeforeDelimiter([你的原文本列名], " performed action on ")
      • 如果提取结果前后带格式方括号,再加一层清理:Text.Trim(Text.BeforeDelimiter([你的原文本列名], " performed action on "), "[]")
    • 提取ActionItemId字段:Text.BetweenDelimiters([你的原文本列名], " performed action on ", " in category ")
      • 带格式方括号的话套上面的清理公式即可
    • 提取Category字段:Text.AfterDelimiter([你的原文本列名], " in category ")
      • 带格式方括号就做同样的清理
  • 核对三个新列的提取结果无误后,点击「关闭并应用」即可,后续数据刷新时新列会自动按规则更新。

方法2:DAX 计算列(轻量快速实现)

如果不想进入Power Query调整数据结构,直接在数据视图下新建三个计算列,把公式里的表名、列名替换成实际值就能用:

  • User列:
User = 
VAR 分隔位置1 = SEARCH(" performed action on ", '你的表名'[原文本列名])
RETURN LEFT('你的表名'[原文本列名], 分隔位置1 - 1)
  • ActionItemId列:
ActionItemId = 
VAR 分隔位置1 = SEARCH(" performed action on ", '你的表名'[原文本列名])
VAR 内容起点 = 分隔位置1 + LEN(" performed action on ")
VAR 分隔位置2 = SEARCH(" in category ", '你的表名'[原文本列名], 内容起点)
RETURN MID('你的表名'[原文本列名], 内容起点, 分隔位置2 - 内容起点)
  • Category列:
Category = 
VAR 分隔位置2 = SEARCH(" in category ", '你的表名'[原文本列名])
VAR 内容起点 = 分隔位置2 + LEN(" in category ")
RETURN RIGHT('你的表名'[原文本列名], LEN('你的表名'[原文本列名]) - 内容起点 + 1)

注意:操作前建议抽3-5条实际单元格内容,核对固定分隔短语的拼写、空格数是否和模板完全一致;不要用按固定字符位置拆分的方式,因为不同长度的User、ActionItemId会导致拆分错位,用分隔符匹配的方式才能适配所有长度的字段值。如果提取结果带格式方括号,用SUBSTITUTE或TRIM套一层清理即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.09 17:06:03