2016-09-20 47 views
1

使用SSAS表格或Excel的PowerPivot,我正在寻找一个DAX公式来实现以下目标:DAX公式从过滤的行获得场在同一个表

我有3个主要列的交易表:日期,类型和金额

类型可以是:'销售'或'付款'。

我需要的是让我的新的计算领域,每一个销售的“付款日期”,所以我的公式应该是这个样子:

首先计算(日期),过滤器(类型=“支付”) ,过滤器(currentrow(date)< =付款(日期)))

需要一些帮助找到正确的日期过滤器。同样重要的是,我发现只有'付款'类型的第一笔交易,因为可能会发生进一步的交易。

实施例的数据: 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 
+1

您可以在计算列中添加样本数据和预期结果,以帮助您。 –

+0

“付款日期”是付款类型的下一个日期,对不对? –

+0

我有更多的客户过滤器,但是很确定,我猜下一个类型付款日期将会完成这项工作 –

回答

1

使用下面表达式中计算列:

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

在示例数据存在错误,31/02/2016不是有效日期。我29/02/2016取代它,结果是:

enter image description here

让我知道,如果这有助于。