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

矩阵中DAX度量值Daily Turnover总计计算异常求助

DAX度量值矩阵总计不符合预期的解决方法

当前使用以下DAX度量值计算每日 turnover:

Daily Turnover = 
VAR applNos = 
CALCULATETABLE(
    DISTINCT(combined_apps[appl_appl_no]), 
    combined_apps[table_type] = "TRAN",
    combined_apps[appl_decision_date] IN VALUES ('calendar'[cal_posted_date])
    )

RETURN

CALCULATE(
  SUM(combined_apps[tran_amount]),
  REMOVEFILTERS('calendar'),
  combined_apps[appl_appl_no] IN applNos,
  combined_apps[table_type] = "TRAN"
 )

将其放入以'calendar'[cal_posted_date]为行的矩阵时,各行计算结果正确,但总计结果不符合预期。需求是:针对'calendar'[cal_posted_date]中的每个日期,先获取该日期下所有table_type为"TRAN"的appl_appl_no,再计算这些appl_appl_no在全部数据中的tran_amount总和。

问题原因

原度量值计算总计行时,VALUES('calendar'[cal_posted_date])会返回日历表中所有日期,导致applNos包含所有日期的TRAN类appl_appl_no,最终计算的是这些所有appl_no的总金额,而非各行结果的累加(同一appl_no可能在多个日期出现,各行会重复计算,但总计只算一次)。

解决方案

方案1:总计为各行结果累加(常规矩阵预期)

使用SUMX迭代每个日期,单独计算每个日期对应的turnover后求和,确保总计行是各行结果的正确累加:

Daily Turnover = 
SUMX(
    VALUES('calendar'[cal_posted_date]),
    VAR applNos = 
        CALCULATETABLE(
            DISTINCT(combined_apps[appl_appl_no]), 
            combined_apps[table_type] = "TRAN",
            combined_apps[appl_decision_date] = EARLIER('calendar'[cal_posted_date])
        )
    RETURN
        CALCULATE(
            SUM(combined_apps[tran_amount]),
            REMOVEFILTERS('calendar'),
            combined_apps[appl_appl_no] IN applNos,
            combined_apps[table_type] = "TRAN"
        )
)
  • SUMX遍历每个cal_posted_date,对单个日期独立计算对应的turnover
  • 用EARLIER('calendar'[cal_posted_date])替代原IN VALUES(...),确保每个迭代仅取当前日期的appl_no
  • 总计行自动对所有日期的计算结果求和,符合直观预期

方案2:总计为所有日期合并appl_no的总金额(无重复计算)

如果需求是总计行需要计算所有日期的appl_no合并后的总金额(同一appl_no仅计算一次),可以用以下变体:

Daily Turnover = 
VAR CurrentDates = VALUES('calendar'[cal_posted_date])
VAR allApplNos = 
    CALCULATETABLE(
        DISTINCT(combined_apps[appl_appl_no]), 
        combined_apps[table_type] = "TRAN",
        combined_apps[appl_decision_date] IN CurrentDates
    )
RETURN
    IF(
        HASONEVALUE('calendar'[cal_posted_date]),
        // 单个日期时计算该日期appl_no的总金额
        CALCULATE(
            SUM(combined_apps[tran_amount]),
            REMOVEFILTERS('calendar'),
            combined_apps[appl_appl_no] IN CALCULATETABLE(
                DISTINCT(combined_apps[appl_appl_no]), 
                combined_apps[table_type] = "TRAN",
                combined_apps[appl_decision_date] IN CurrentDates
            ),
            combined_apps[table_type] = "TRAN"
        ),
        // 总计行时计算所有日期合并appl_no的总金额
        CALCULATE(
            SUM(combined_apps[tran_amount]),
            REMOVEFILTERS('calendar'),
            combined_apps[appl_appl_no] IN allApplNos,
            combined_apps[table_type] = "TRAN"
        )
    )

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 01:10:26