从含多值的现有列创建新列:多值行映射为指定单一值
解决DAX多值行映射到单一指定值的问题
针对你需要将包含多值的行映射为指定单一值的需求,这里提供两种可行的DAX计算列写法,解决你之前IF ELSE语句未达成目标的问题:
方案1:嵌套IF逻辑(适合少量匹配规则)
映射结果列 = VAR 当前值 = '你的表名'['原多值列'] RETURN // 优先匹配优先级最高的目标值,顺序不能乱 IF(CONTAINSSTRING(当前值, "Hovedsertifisør"), "Hovedsertifisør", IF(CONTAINSSTRING(当前值, "Hovedkonsulent"), "Hovedkonsulent", IF(CONTAINSSTRING(当前值, "Konsulent"), "Konsulent", // 无匹配值时返回原内容,也可改为固定默认值 当前值 ) ) )
方案2:SWITCH函数(适合多规则,代码更易读)
映射结果列 = VAR 当前值 = '你的表名'['原多值列'] RETURN SWITCH(TRUE(), CONTAINSSTRING(当前值, "Hovedsertifisør"), "Hovedsertifisør", CONTAINSSTRING(当前值, "Hovedkonsulent"), "Hovedkonsulent", CONTAINSSTRING(当前值, "Konsulent"), "Konsulent", // 无匹配时的默认返回值 当前值 )
关键说明
- 优先级顺序:必须将优先级最高的匹配规则放在最前面(比如你需求中的Hovedsertifisør),确保只要行中包含该值,就会优先返回它,不受其他值影响。
- 大小写处理:
CONTAINSSTRING不区分大小写,能匹配你例子中混合大小写的konsulent和Konsulent;如果需要严格区分大小写,替换为CONTAINSSTRINGEXACT即可。 - 替换占位符:记得把代码中的
你的表名和原多值列换成你实际使用的表名和列名。
内容的提问来源于stack exchange,提问作者olajor
相关产品推荐
相关产品推荐

