1

我在 PowerBI 中有一个表,它有 3 列:1.EnrollId 2.Status 3.StatusChangeDate。一个 EnrollId 有 4 个状态及其特定的 statusChangeDates。我想找没有。具有状态条件的两个日期之间的天数。

EnrollId   Status         StatusChangeDate
101        AppStart       15/02/2019
101        Application    27/03/2019
101        Enrollment     03/04/2019
101        Complete       28/04/2019

我想在 DAX 中创建公式

[StatusChangeDate (where Status="Enrollment") - StatusChangeDate(where status="AppStart)]

或者

[StatusChangeDate (where Status="Complete")- StatusChangeDate(where status="Enrollment)]

i.e.  03/04/2019 - 15/02/2019 = 44 Days
      28/04/2019 - 03/04/2019 = 25 Days
4

2 回答 2

0

我的建议是使用计算列,您可以尝试将其调整为度量值,但关于过滤器上下文还有更多因素需要考虑。

对于计算列:

DaysLastChange = 
VAR _currentStatusChangeDate = [StatusChangeDate]
VAR _currentEnrollId = [EnrollId]
RETURN
    DATEDIFF(
        CALCULATE(MAX('Table1'[StatusChangeDate]);FILTER('Table1';_currentEnrollId = [EnrollId] && _currentStatusChangeDate > [StatusChangeDate] ));
        _currentStatusChangeDate;
        DAY
    )

结果

于 2019-07-10T08:32:03.277 回答
0

如果你想采取措施,试试这样的。对于两个状态之间的每个期间,您需要创建另一个度量。When more than one [EnrollId] is selected, the measure returns a blank.

Days Enrollment - Complete =
VAR scDateEnrollment =
    CALCULATE ( MAX ( 'Table'[StatusChangeDate] ), 'Table'[Status] = "Enrollment" )
VAR scDateComplete =
    CALCULATE ( MAX ( 'Table'[StatusChangeDate] ), 'Table'[Status] = "Complete" )
RETURN
    IF (
        HASONEVALUE ( 'Table'[EnrollId] ),
        DATEDIFF ( scDateEnrollment, scDateComplete, DAY )
    )

Cardvisuals 或 table-visual 看起来像这样。如您所见,表格视觉不受切片器的影响。

在此处输入图像描述

编辑 这是我使用的表:

在此处输入图像描述

于 2019-07-10T09:17:27.217 回答