2016-09-20 61 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

讓我知道,如果這有助於。