在同一组中查找日期较早的最新项目
Find latest item in the same group with an earier date
我有一个 Power Pivot 模型,项目和日期 tables 链接在一个关系中:
Project Step Date
------- ---- ----
A 1 2-Jan-18
A 2 4-Jan-18
B 1 3-Jan-18
B 2 5-Jan-18
Date
----
1-Jan-18
2-Jan-18
3-Jan-18
4-Jan-18
5-Jan-18
6-Jan-18
我试图开发一个产生以下输出的枢轴table:
A B
1-Jan-18
2-Jan-18 1
3-Jan-18 1 1
4-Jan-18 2 1
5-Jan-18 2 2
6-Jan-18 2 2
如何编写 Measure 来实现这一点?
公式方法
在您要创建的 table 的第一个单元格中使用以下公式,然后向下和向右复制。复制前更新参考范围,注意公式中的$
=IFERROR(INDEX($B:$B,AGGREGATE(15,6,ROW($C:$C)/((F=$A:$A)*($E3=$C:$C)),1)),IF(ROW(F3)=ROW($F),"",F2))
聚合执行类似数组的操作,而不是数组。因此 AGGREGATE 函数内的此类范围不应是完整的列引用。如果您发现系统计算速度变慢,可能是因为您在聚合函数中进行了大量计算。
我终于到了:
CurrentStep:=
CALCULATE (
FIRSTNONBLANK( 'Poject'[Step], 1 ),
TOPN(
1,
CALCULATETABLE(
'Project',
FILTER(
ALL( Date[Date] ),
'Date'[Date] <= MAX( Date[Date] )
)
),
'Project'[Date],
DESC
)
)
我有一个 Power Pivot 模型,项目和日期 tables 链接在一个关系中:
Project Step Date
------- ---- ----
A 1 2-Jan-18
A 2 4-Jan-18
B 1 3-Jan-18
B 2 5-Jan-18
Date
----
1-Jan-18
2-Jan-18
3-Jan-18
4-Jan-18
5-Jan-18
6-Jan-18
我试图开发一个产生以下输出的枢轴table:
A B
1-Jan-18
2-Jan-18 1
3-Jan-18 1 1
4-Jan-18 2 1
5-Jan-18 2 2
6-Jan-18 2 2
如何编写 Measure 来实现这一点?
公式方法
在您要创建的 table 的第一个单元格中使用以下公式,然后向下和向右复制。复制前更新参考范围,注意公式中的$
=IFERROR(INDEX($B:$B,AGGREGATE(15,6,ROW($C:$C)/((F=$A:$A)*($E3=$C:$C)),1)),IF(ROW(F3)=ROW($F),"",F2))
聚合执行类似数组的操作,而不是数组。因此 AGGREGATE 函数内的此类范围不应是完整的列引用。如果您发现系统计算速度变慢,可能是因为您在聚合函数中进行了大量计算。
我终于到了:
CurrentStep:=
CALCULATE (
FIRSTNONBLANK( 'Poject'[Step], 1 ),
TOPN(
1,
CALCULATETABLE(
'Project',
FILTER(
ALL( Date[Date] ),
'Date'[Date] <= MAX( Date[Date] )
)
),
'Project'[Date],
DESC
)
)