如何用DAX统计Power BI中每日最后一小时的任务数量?
Power BI DAX统计每日最后一小时任务数的修正方案
问题描述
现有Raw Data表存储任务记录,包含任务类型、唯一标识、日期、完成小时字段;Dimension表为日期维度表,用于展示每日统计结果。原计算列LatestUnitsProcessed在8月31日返回正确结果3,但9月1日结果为空,原因是MAX('Raw Data'[Value4])未限定日期范围,取到了全局最大小时数10,而非9月1日的最大小时数8。
修正后的DAX公式
方法一:使用变量明确当日最大小时
LatestUnitsProcessed = VAR CurrentDate = 'Dimension'[Date] VAR DailyMaxHour = MAXX( FILTER('Raw Data', 'Raw Data'[Value3] = CurrentDate), 'Raw Data'[Value4] ) RETURN CALCULATE ( DISTINCTCOUNT ( 'Raw Data'[Value2] ), 'Raw Data'[Value3] = CurrentDate, 'Raw Data'[Value4] = DailyMaxHour )
方法二:嵌套CALCULATE限定日期上下文
LatestUnitsProcessed = CALCULATE ( DISTINCTCOUNT ( 'Raw Data'[Value2] ), FILTER ( 'Raw Data', 'Raw Data'[Value3] = 'Dimension'[Date] && 'Raw Data'[Value4] = CALCULATE(MAX('Raw Data'[Value4]), 'Raw Data'[Value3] = 'Dimension'[Date]) ) )
原理说明
- 方法一中通过
VAR定义CurrentDate获取当前维度日期,再用MAXX筛选当日数据并计算最大小时数,最后基于这两个条件统计去重任务数。 - 方法二中直接在筛选条件内用
CALCULATE限定日期上下文,计算当日的最大小时数,确保过滤逻辑仅针对当日数据。
两种方法都能让MAX函数的计算范围限定在当前维度日期对应的Raw Data数据中,从而正确统计每日最后一小时的任务数量。
内容的提问来源于stack exchange,提问作者Darren Bartrup-Cook
相关产品推荐
相关产品推荐

