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

如何将SSRS中的求和表达式正确转换为Power BI可用的DAX公式

问题原因说明

你遇到的The SUM function only accepts a column reference as an argument报错,核心原因是DAX语法中SUM函数仅支持传入整列引用作为参数,不支持直接传入IF判断这类表达式。同时你原公式还存在表名笔误:内层IF引用的Query[TypeRecord]遗漏了表名后缀1,应为Query1[TypeRecord]。

正确写法

原SSRS表达式的逻辑是:逐行判断发送日期早于当天、且记录类型为1时,累加对应吨数。Power BI中优先推荐使用度量值实现(匹配SSRS聚合运算的使用场景,支持随报表筛选上下文动态计算),两种常用写法如下:

  • 写法1:SUMX迭代函数(和原SSRS逻辑完全对应,可读性高)
符合条件吨数汇总 = 
SUMX (
    'Query1',
    IF (
        'Query1'[DateSend] < TODAY () && 'Query1'[TypeRecord] = 1,
        'Query1'[Tons],
        0
    )
)
  • 写法2:CALCULATE修改筛选上下文(性能更优,适合大数据量场景)
符合条件吨数汇总 = 
CALCULATE (
    SUM ( 'Query1'[Tons] ),
    'Query1'[DateSend] < TODAY (),
    'Query1'[TypeRecord] = 1
)

如果你确实需要创建计算列(每行存储全表符合条件的静态汇总值),可以使用如下写法:

New Column = 
CALCULATE (
    SUM ( 'Query1'[Tons] ),
    FILTER (
        ALL ( 'Query1' ),
        'Query1'[DateSend] < TODAY () && 'Query1'[TypeRecord] = 1
    )
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 13:45:03