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

Power BI DAX问题:根据字符串包含的指定值数量为计算列赋值

DAX计算列得分计算实现方案

之前实现报错的核心原因

  • 嵌套IF+OR返回全8分:嵌套判断逻辑顺序错误,最高得分的全包含判断逻辑写为只要命中任意一个有效取值就返回8分,而非四个全部命中才返回
  • 严格相等判断apple无法命中:字符串存在前后空格、大小写差异,或者column1为多值拼接内容,无法通过全等匹配命中

基础实现代码(适用包含子串即匹配的场景)

直接对每个有效取值单独判断计分后累加,避免嵌套逻辑错误:

水果得分 = 
// 去除字符串前后空格+转小写,避免空格、大小写导致匹配失败
VAR 格式化内容 = LOWER(TRIM('你的表名'[column1]))
VAR 计分项 = 
    IF(CONTAINSSTRING(格式化内容, "apple"),2,0) +
    IF(CONTAINSSTRING(格式化内容, "orange"),2,0) +
    IF(CONTAINSSTRING(格式化内容, "pear"),2,0) +
    IF(CONTAINSSTRING(格式化内容, "banana"),2,0)
RETURN
计分项

替换代码中的你的表名为你实际的表名即可直接使用

严谨实现代码(适用多值分隔的场景)

如果你的column1是用固定分隔符(如逗号、顿号)拼接的多值内容,为了避免「applepie被误判为包含apple」的问题,可以使用PATHCONTAINS做完整项匹配:

水果得分_严谨版 = 
VAR 格式化内容 = LOWER(TRIM('你的表名'[column1]))
// 把你实际的分隔符替换下面的逗号,转换为PATH函数支持的|分隔格式
VAR 路径格式内容 = SUBSTITUTE(格式化内容, ",", "|")
VAR 计分项 = 
    IF(PATHCONTAINS(路径格式内容, "apple"),2,0) +
    IF(PATHCONTAINS(路径格式内容, "orange"),2,0) +
    IF(PATHCONTAINS(路径格式内容, "pear"),2,0) +
    IF(PATHCONTAINS(路径格式内容, "banana"),2,0)
RETURN
计分项

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 10:06:04