Powerpivot:减去第一个成员

时间:2015-01-08 13:42:59

标签: business-intelligence powerpivot dax powerbi

考虑下表:

Group ID    Date
1001        2014-01-05
1001        2014-01-12
1001        2014-01-22
1002        2014-01-15
1002        2014-01-19

如何在几天内计算一组内的持续时间?持续时间定义为日期[k] - 日期[0]

例如:所需的表应如下所示:

Group ID    Date          Duration
1001        2014-01-05    0  
1001        2014-01-12    7
1001        2014-01-22    17
1002        2014-01-15    0
1002        2014-01-19    4

我尝试使用MINX返回群组的第一个日期值:

  

= MINX(过滤器(表;表[组ID] =表[组ID]);表[日期])

但返回的值是整个表的最小值,就像 FILTER 返回整个表一样。

2 个答案:

答案 0 :(得分:1)

目前尚不清楚您是否正在尝试生成计算列或度量值 - 您可能应该尝试更晚但可以以任何方式完成。

计算的列只是:

= [Date] - CALCULATE(MIN(Table[Date]), FILTER(Table, Table[Group_ID] = EARLIER(Table[Group_ID])))

措施更强大!你可以得到这个日期

[Raw Measure] = MAX(Table[Date]) - CALCULATE(MIN(Table[Date]), ALL(Table[Date]))

这是有效的,因为ALL()在Date列上打开过滤器上下文,同时在组上保留过滤器。

您需要迭代此度量,因为它会反对总数,在此示例中您可以使用:

[Iterated Measure] = SUMX(Table, [Raw Measure])

答案 1 :(得分:0)

可能取决于你需要做什么,但是......

= MAX(表[日期]) - MIN(表[日期])理论上可以在行上使用GroupID吗?