2016-09-20 8 views
1

Использование SSAS табличном или Excel PowerPivot, я искал формулу DAX, чтобы достичь следующего:DAX Формулы, чтобы получить поле из отфильтрованного строки в той же таблице

У меня есть таблица сделок с 3-х основных столбцов: Дата, тип и сумма

Тип может быть: «Продажа» или «Оплата».

Что мне нужно, чтобы получить мое новое вычисляемое поле, «Дата оплаты» каждой продажи, так что моя формула должна выглядеть примерно так:

CALCulate FIRST (дата), фильтр (тип = «платеж») , фильтр (текущий (0) < = платеж (дата)))

Нужна помощь, чтобы найти правильный фильтр даты. Важно также, чтобы найти только первые транзакции типа '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 
+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

Позвольте мне знать, если это помогает.