Power BI中如何提取列内括号中的内容生成新列?
在Power BI中提取列内括号中的内容创建新列
方法一:使用DAX创建计算列
假设你的原列名为城市信息,表名为城市列表,新建计算列的DAX公式如下:
提取代码 = MID('城市列表'[城市信息], SEARCH("(", '城市列表'[城市信息]) + 1, SEARCH(")", '城市列表'[城市信息]) - SEARCH("(", '城市列表'[城市信息]) - 1)
- 逻辑说明:
SEARCH函数定位左右括号的位置,MID函数根据位置截取括号内的内容。如果部分行没有括号,可嵌套IFERROR返回空值避免报错:
提取代码 = IFERROR(MID('城市列表'[城市信息], SEARCH("(", '城市列表'[城市信息]) + 1, SEARCH(")", '城市列表'[城市信息]) - SEARCH("(", '城市列表'[城市信息]) - 1), BLANK())
方法二:使用Power Query预处理数据
如果更倾向于在数据加载阶段处理,可使用Power Query的内置函数:
- 进入Power Query编辑器,选中目标列
- 添加自定义列,输入M函数:
= Table.AddColumn(源, "提取代码", each Text.BetweenDelimiters([城市信息], "(", ")"))
- 该函数直接提取两个分隔符(
(和))之间的内容,无需手动计算位置。若需处理无括号的行,可添加判断:
= Table.AddColumn(源, "提取代码", each if Text.Contains([城市信息], "(") and Text.Contains([城市信息], ")") then Text.BetweenDelimiters([城市信息], "(", ")") else null)
内容的提问来源于stack exchange,提问作者user19351102
相关产品推荐
相关产品推荐

