DAX 公式从同一 table 中的筛选行获取字段

DAX Formula to get field from a filtered row in the same table

使用 SSAS 表格或 Excel PowerPivot,我正在寻找一个 DAX 公式来实现以下目标:

我有一笔交易 table,其中包含 3 个主要列:日期、类型和金额

类型可以是:'Sale' 或 'Payment'。

我需要的是获取我的新计算字段,即每次销售的 "Payment date",因此我的公式应如下所示:

首先计算(日期),过滤器(类型='payment'),过滤器(当前行(日期)<=付款(日期)))

需要一些帮助来找到正确的日期过滤器。同样重要的是,我只找到 类型为 'Payment' 的第一个 交易,因为可以有进一步的交易。

示例数据: PaymentDate 是我的计算字段

Type        Date       Amount   PaymentDate

Sale     01/01/2016     100     31/02/2016
Sale     01/02/2016     100     31/02/2016
Sale     01/03/2016     100     31/05/2016
Payment  31/02/2016     200        Empty
Sale     01/04/2016     100     31/05/2016
Sale     01/05/2016     100     31/05/2016
Payment  31/05/2016     300        Empty
Sale     01/06/2016     100        Empty

在计算列中使用以下表达式:

=IF (
    'table'[Type] = "Payment",
    BLANK (),
    CALCULATE (
        MIN ( [Date] ),
        FILTER (
            'table',
            'table'[Date] > EARLIER ( 'table'[Date] )
                && 'table'[Type] = "Payment"
        )
    )
)

您的示例数据中存在错误,31/02/2016 不是有效日期。我用29/02/2016代替了,结果是:

如果有帮助请告诉我。