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

Power BI技术需求:用DAX函数实现按日期计算TotalWorkHours总和并新增列

DAX解决按日期分组求和新增列问题

错误原因

你之前的DAX表达式无效,是因为Filter里的条件MarginReport[WkSTDate]=MarginReport[WkSTDate]没有实际筛选作用——它对所有行都成立,最终计算的是整个表的TotalWorkHours总和,而非按日期分组的总和。

正确DAX表达式

以下两种方法都能实现需求:

方法1:使用CALCULATE + ALLEXCEPT(推荐,更简洁高效)

Nume = 
CALCULATE(
    SUM(MarginReport[TotalWorkHours]),
    ALLEXCEPT(MarginReport, MarginReport[WkSTDate])
)

ALLEXCEPT会保留当前行的WkSTDate上下文,移除其他列的筛选,从而计算当前日期对应的TotalWorkHours总和。

方法2:修正SUMX + Filter的筛选条件

Nume = 
SUMX(
    FILTER(
        MarginReport,
        MarginReport[WkSTDate] = EARLIER(MarginReport[WkSTDate])
    ),
    MarginReport[TotalWorkHours]
)

用EARLIER获取当前行的WkSTDate值,让Filter精准筛选出所有同日期的记录,再对这些记录的TotalWorkHours求和。

操作步骤

将上述任意一个表达式作为计算列添加到MarginReport表中,即可实现:所有WkSTDate为11-nov-23的行,Nume列显示780;所有WkSTDate为12-nov-23的行,Nume列显示200。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 08:47:13