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?
考虑以下 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?