如何在PowerBI中按指定条件从现有列提取内容创建新列?
嘿,我来帮你搞定这个需求!在PowerBI里要实现这个提取现有列内容创建新列的逻辑,有两种常用的方法——用DAX创建计算列,或者用Power Query编辑器添加自定义列,我都给你详细拆解:
方法一:使用DAX创建计算列
这是在报表视图里快速创建列的方式,步骤很简单:
- 先打开PowerBI的报表视图,在右侧数据面板里选中你要操作的目标表
- 点击顶部菜单栏的建模选项卡,选择新建列
- 在顶部的公式栏里,输入下面的DAX表达式(记得替换成你实际的表名和列名):
新列名称 = IF( CONTAINSSTRING('你的表名'[现有列名称], "0,0.1"), "DisplaySize", '你的表名'[现有列名称] )
- 简单解释下:
CONTAINSSTRING函数会检查现有列的内容里是否包含指定的文本"0,0.1",如果符合条件就返回"DisplaySize",不符合的话就直接沿用原列的内容。
方法二:使用Power Query编辑器添加自定义列
如果需要更灵活的文本处理,或者要在数据加载前就完成转换,用Power Query更合适:
- 进入Power Query编辑器:点击顶部主页选项卡的转换数据按钮
- 选中目标表后,切换到添加列选项卡,点击自定义列
- 在弹出的对话框里,输入下面的M语言表达式(替换
现有列名称为你实际的列名):
= if Text.Contains([现有列名称], "0,0.1") then "DisplaySize" else [现有列名称]
- 点击确定后,再点击关闭并应用,回到报表视图就能看到新生成的列啦。
小提示:如果你的需求需要严格区分大小写匹配,可以把DAX里的CONTAINSSTRING换成CONTAINSSTRINGEXACT,或者在Power Query的表达式里改成Text.Contains([现有列名称], "0,0.1", Comparer.Ordinal),默认是不区分大小写的,一般场景下够用。
内容的提问来源于stack exchange,提问作者namrata
相关产品推荐
相关产品推荐

