DAX 层次结构中的重叠任务持续时间聚合

问题描述

场景: 监控“任务”持续时间。目的是跟踪持续时间变化的趋势。 有一个框架可以存储有关任务的信息。 有一个使用父/子 ID 的层次结构设置。 列; Task_ID、Parent_Task_ID、开始时间、结束时间、持续时间。

Task Execution timeline

Task hierarchy

Task Table

已使用计算列设置层次结构 深度,路径,Level1-Level4。 (根据层次结构上的 DAX 模式) 措施;已设置 browsedepth 和 RowDepth 以删除报告设置中的空白级别。

DAX; 总和层次结构 =
VAR Val = [总和持续时间]
VAR ShowRow=[browseDepth] 返回 IF(ShowRow,Val)

挑战: 在任务表中,所有持续时间都是正确的,因此不需要将子项的持续时间聚合到父项。 在我发现的例子中连接到层次结构的 Daxpatterns 中,总是有从子级到父级的聚合,如下矩阵中的黑色数字所示

enter image description here

目标是找到一种方法来创建一个度量,避免从子项到父项的聚合,并显示上图中的“蓝色数字”。

是否有人对要使用的模式或逻辑有任何指示,将不胜感激。

亲切的问候, Atle Røen

解决方法

对此的答案是使用 MAX( 'Task'[Duration] ) 并过滤最后一个任务执行。当你终于找到答案时很简单:D

DAX;

最大任务持续时间 - 上次运行:= 计算 ( MAX('任务'[持续时间]),最后日期 ( ( 筛选 ( 值('任务'[开始时间]), MAX('日历'[日期])>='任务'[开始时间] ) ) ) )

任务持续时间 - 上次运行 - Hier:= VAR Val = [最大任务持续时间 - 上次运行] VAR ShowRow = [BrowseDepth]