Powerpivot:减去组的第一个成员

Powerpivot: Subtract first member of group

考虑以下 table:

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

如何计算组内的持续时间(以天为单位)?持续时间定义为 Date[k] - Date[0]

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

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 return 组的第一个日期值:

=MINX(FILTER(Table;Table[Group ID] = Table[Group ID]); Table[Date])

但是 returned 的值是整个 table 的最小值,就好像 FILTER 是 returning 整个 table.

不清楚您是要生成计算列还是度量 - 您可能应该尝试后者,但两种方法都可以。

计算的列将只是:

= [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() 打开了日期列上的筛选器上下文,同时保留了组上的筛选器。

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

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

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

=MAX(Table[Date]) - MIN(Table[Date]) 理论上可以在行上使用 GroupID?