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

Power BI:基于多OR条件度量值筛选表报错求助

解决DAX度量值报错:“Multiple columns cannot be converted to a scalar value”

错误原因

  1. 度量值返回类型不匹配:DAX度量值要求返回单个标量值(如数字、文本),但你的代码中FILTER返回的是完整的表,这直接触发了报错。
  2. 逻辑运算符优先级错误:&&的优先级高于||,原代码会先计算CONTAINSSTRING(...) && 'CRA Intake Status' = "To Do",再和后面的条件做或运算,不符合你需要的“Parent Link满足条件,且后面任意一个条件成立”的逻辑。

解决办法

方案1:创建计算表(而非度量值)

如果你的目标是得到筛选后的数据集,直接创建计算表,修正逻辑括号即可:

Filter missing requirements =
VAR MTMB = "ABN-1095"
RETURN
FILTER('Sheet1',
    CONTAINSSTRING('Sheet1'[Parent Link], MTMB) &&
    (
        'Sheet1'[CRA Intake Status] = "To Do" ||
        'Sheet1'[Eligible for Capitalisation] = "No" ||
        ISBLANK('Sheet1'[Eligible for Capitalisation]) ||
        'Sheet1'[Solution Intent status] IN {"To Do", "Undefined"}
    )
)
  • 用括号包裹所有||条件,确保先判断这些条件是否有一个成立,再和Parent Link的筛选条件做&&运算。
  • 用IN简化多值判断,让代码更简洁易读。

方案2:调整为合法的度量值(返回标量)

如果需要在报表中使用度量值(比如统计符合条件的行数),将筛选后的表转换为标量值,例如用COUNTROWS统计行数:

Filter missing requirements =
VAR MTMB = "ABN-1095"
VAR FilteredTable =
FILTER('Sheet1',
    CONTAINSSTRING('Sheet1'[Parent Link], MTMB) &&
    (
        'Sheet1'[CRA Intake Status] = "To Do" ||
        'Sheet1'[Eligible for Capitalisation] = "No" ||
        ISBLANK('Sheet1'[Eligible for Capitalisation]) ||
        'Sheet1'[Solution Intent status] IN {"To Do", "Undefined"}
    )
)
RETURN
COUNTROWS(FilteredTable)
  • 先通过VAR定义筛选后的表,再用COUNTROWS返回符合条件的行数,满足度量值必须返回标量的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 18:12:32