2016-12-15 75 views
0

我是新的DAXPowerPivot的DAX:确定最后的状态在每个项目/件时间

我工作的一个IT服务台,我想有一个仪表板,显示我“运行案例”随着时间的推移。

这些案件具有不同的地位,如:AWAITING - 正在进行 - 已规划 - 已关闭。

案件正在考虑为“Running案例”,当他们得到以下状态,除了“关闭”

的目标是让每个正在运行的情况下,最后状态(未关闭)以显示什么是工作量

这里是理想的结果: Desired Result

如何到达这个结果,什么是完整的数据? 这里是4天的交易表和9例: Transaction tables after 4 days for each cases

我试着用这些和其他DAX语法,但我没有得到预期的结果。

= COUNTROWS(FILTER(表1; MAX(表1 [日期])))

= CALCULATE(COUNTROWS(表1); FILTER(ALL(表1);表1 [日期] < = MAX(表1 [日期])))

我很难公式化正确的DAX语法,以便获得如下所需的结果。

我将不胜感激您对此事怎么

+0

嗨亚历杭德罗,感谢您的快速回答。你有错误,但不在正确的地方。实际上数据集的最后一行不存在(08.12.16-1110-CLOSED)。案件1110的最后一个状态正在等待。没有人采取这种情况负责,因此仍在运行。这是该场景的挑战:-)。我们必须考虑所有日期(行)进行计算。我们有3个运行案例; 2月12日和12月7日。该措施应能够计算所有小于或等于当前评估背景日期的运行情况 – tomneo007

回答

0

帮助创建措施,让每日期的行数,其中StatusCLOSED不同。在你想要的结果例如,对于2016年8月12日运行的情况下,值是3,但在样本数据集

enter image description hereenter image description here

注:

Running Cases = 
CALCULATE (
    COUNTROWS (Table1), 
    FILTER (Table1, Table1[Status] <> "CLOSED") 
) 

在数据透视表中使用这一措施,你会得到这个我只能算2,希望是打字错误。


UPDATE:获取运行的情况下,直到上下文数据。

在您的Table1中创建一个名为ClosedOn的计算列,并使用以下DAX表达式。

= 
IF (
    ISBLANK (
     CALCULATE (
      MIN ([Date]), 
      FILTER (
       Table1, 
       [Date] >= EARLIER (Table1[Date]) 
        && [ID_Case] = EARLIER (Table1[ID_Case]) 
        && [Status] = "CLOSED" 
      ) 
     ) 
    ), 
    MAXX (Table1, [Date]) + 1, 
    CALCULATE (
     MIN ([Date]), 
     FILTER (
      Table1, 
      [Date] >= EARLIER (Table1[Date]) 
       && [ID_Case] = EARLIER (Table1[ID_Case]) 
       && [Status] = "CLOSED" 
     ) 
    ) 
) 

此计算列将告诉我们案件何时关闭。

然后你就可以使用计算列在运行的情况下的措施如下:

Running Cases := 
CALCULATE (
    DISTINCTCOUNT (Table1[ID_Case]), 
    FILTER (
     ALL (Table1), 
     [Date] <= MAX ([Date]) 
      && [ClosedOn] > MAX ([Date]) 
    ) 
) 

在数据透视表中的结果应该是这样的:

enter image description here

让我知道如果这有助于。

+0

嗨Alejandro, 感谢您的快速回答。你有错误,但不在正确的地方。实际上数据集的最后一行不存在(08.12.16-1110-CLOSED)。 案件1110的最后一个状态正在等待。没有人采取这种情况负责,因此仍在运行。 这是场景的挑战:-)。我们必须考虑所有日期(行)进行计算。我们有3个运行案例; 2月12日和12月7日。 该度量应该能够计算所有小于或等于评估上下文的当前日期的运行情况。 – tomneo007

+0

@ tomneo007,我已经更新了我的答案,试试看。 –