使用更早的日期查找同一组中的最新项目

时间:2018-02-19 16:17:27

标签: powerbi dax powerpivot ssas-tabular

我有一个Power Pivot模型,项目和日期表以关系链接:

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

我尝试开发一个生成以下输出的数据透视表:

           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

如何编写措施来实现这一目标?

2 个答案:

答案 0 :(得分:1)

公式方法

在要创建的表格的第一个单元格中使用以下公式,并向右和向右复制。在复制之前更新参考范围并注意公式中的$

=IFERROR(INDEX($B:$B,AGGREGATE(15,6,ROW($C$3:$C$6)/((F$2=$A$3:$A$6)*($E3=$C$3:$C$6)),1)),IF(ROW(F3)=ROW($F$3),"",F2))

Aggregate执行数组操作而不是数组。因为AGGREGATE函数内的这些范围不应该是完整的列引用。如果您发现系统计算速度变慢,可能是因为您在聚合函数中进行了大量计算。

POC

答案 1 :(得分:0)

我最终到了那里:

CurrentStep:=
CALCULATE (
    FIRSTNONBLANK( 'Poject'[Step], 1 ),
    TOPN(
        1,
        CALCULATETABLE(
            'Project',
            FILTER( 
                ALL( Date[Date] ), 
                'Date'[Date] <= MAX( Date[Date] )
            )
         ),
         'Project'[Date],
         DESC
    )
)