предыдущее значение с использованием DAX - PullRequest
0 голосов
/ 14 февраля 2020

enter image description here

У меня есть три столбца: дата, companyID & Users. Ниже приведен пример таблицы:

Date         CompanyID     Users
2/14/2020        1           20
1/30/2020        1           45
12/30/2019       1           55

Я хочу создать меру DAX, которая будет искать предыдущее значение. Например:

Date         CompanyID     Users       Pre_value
2/14/2020        1           20           45
1/30/2020        1           45           55
12/30/2019       1           55            0

Функции добавления даты не работают, потому что мои даты несовместимы. В моем столбце даты будет отображаться дата сегодня и дата конца месяца за предыдущие месяцы.

1 Ответ

0 голосов
/ 15 февраля 2020

Возможно что-то вроде этого:

Pre_Value = 
    VAR CompanyID = 'Table'[CompanyID]
    VAR Date1 = 'Table'[Date]
    VAR Pre_Date = CALCULATE(MAX('Table'[Date]),FILTER('Table','Table'[CompanyID]=CompanyID),FILTER('Table','Table'[Date]<Date1))    
    VAR Prev_Val = CALCULATE(MAX('Table'[Users]),FILTER('Table','Table'[CompanyID]=CompanyID),FILTER('Table','Table'[Date]=Pre_Date))
RETURN IF(Prev_Val=BLANK(),0,Prev_Val)

Идея состоит в том, чтобы получить предыдущую дату из текущей строки (VAR pre_date) и использовать ее для получения соответствующего значения. Надеюсь, это поможет.

Редактировать: Если вы хотите go вернуть 2 записи:

Pre_Value_2 = 
    VAR CompanyID = 'Table'[CompanyID]
    VAR Date1 = 'Table'[Date]
    VAR Pre_Date = CALCULATE(MAX('Table'[Date]),FILTER('Table','Table'[CompanyID]=CompanyID),FILTER('Table','Table'[Date]<Date1))    
    VAR Pre_Date_2 = CALCULATE(MAX('Table'[Date]),FILTER('Table','Table'[CompanyID]=CompanyID),FILTER('Table','Table'[Date]<Pre_date))
    VAR Prev_Val_2 = CALCULATE(MAX('Table'[Users]),FILTER('Table','Table'[CompanyID]=CompanyID),FILTER('Table','Table'[Date]=Pre_Date_2))
RETURN IF(Prev_Val_2=BLANK(),0,Prev_Val_2)

Я создал еще одну переменную для go назад еще одну дату (pre_date_2).

...