在同一组中查找日期较早的最新项目

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
    )
)