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

Power BI DAX度量问题:多条件收入计算无结果及可视化报错

Power BI DAX度量:符合条件的时间段总收入

需求明确

要计算满足以下所有条件的总收入:

  • 运输类型为Incoming
  • 状态为Invoiced、Shipped或Received
  • 站点与产品需遵循排除规则:
    • 站点29104:排除产品S-ExtFreight、S-ProductInDelivery、S-WeighOnly
    • 站点33103:排除产品S-ExtFreight、S-WeighOnly
    • 站点23103:排除产品S-ExtFreight、SAxleWeigh

正确DAX度量表达式

符合条件的总收入 = 
CALCULATE(
    SUM('你的数据表'[收入列]), -- 替换为实际表名和收入列名
    '你的数据表'[运输类型] = "Incoming",
    '你的数据表'[状态] IN {"Invoiced", "Shipped", "Received"},
    -- 站点与产品的排除逻辑
    NOT (
        ( '你的数据表'[站点] = 29104 && '你的数据表'[产品] IN {"S-ExtFreight", "S-ProductInDelivery", "S-WeighOnly"} )
        || ( '你的数据表'[站点] = 33103 && '你的数据表'[产品] IN {"S-ExtFreight", "S-WeighOnly"} )
        || ( '你的数据表'[站点] = 23103 && '你的数据表'[产品] IN {"S-ExtFreight", "SAxleWeigh"} )
    )
)

无结果/可视化报错排查

  • 列名表名不匹配:确保DAX里的表名、列名和数据模型完全一致(注意大小写、空格)
  • 数据类型冲突:如果站点列是文本类型,要给站点值加引号,比如"29104"
  • 上下文筛选冲突:检查图表的切片器、筛选器是否和度量逻辑冲突,确认时间范围内有符合条件的记录
  • 收入列空值问题:如果收入列存在大量空值,可改用SUMX处理:
    符合条件的总收入 = 
    SUMX(
        FILTER(
            '你的数据表',
            '你的数据表'[运输类型] = "Incoming",
            '你的数据表'[状态] IN {"Invoiced", "Shipped", "Received"},
            NOT (
                ( '你的数据表'[站点] = 29104 && '你的数据表'[产品] IN {"S-ExtFreight", "S-ProductInDelivery", "S-WeighOnly"} )
                || ( '你的数据表'[站点] = 33103 && '你的数据表'[产品] IN {"S-ExtFreight", "S-WeighOnly"} )
                || ( '你的数据表'[站点] = 23103 && '你的数据表'[产品] IN {"S-ExtFreight", "SAxleWeigh"} )
            )
        ),
        '你的数据表'[收入列]
    )
    
  • 排除逻辑写反:之前的表达式可能把NOT放错位置,导致筛选逻辑完全反向,找不到符合条件的记录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 06:33:16