0

考虑下表:

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]

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

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 返回组的第一个 Date 值:

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

但是返回的值是整个表的最小值,好像FILTER正在返回整个表。

4

2 回答 2

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])
于 2015-01-08T18:06:34.867 回答
0

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

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

于 2015-01-09T01:55:46.037 回答