首页 文章

PowerPivot DAX:确定每个项目/案例的最终状态

提问于
浏览
0

我是DAX的新手

我正在IT服务台工作,我希望有一个仪表板,可以显示我的“运行案例” .

这些案件具有不同的状态,如:AWAITING - IN PROGRESS - PLANNED - CLOSED .

案件正在考虑"Running Cases",当他们获得低于 except "CLOSED" 的状态

目标是使用 last status for each running cases (that are not close) 来显示工作负载

这是期望的结果: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语法,以便获得如下所需的结果 .

我非常感谢你对此事的帮助

1 回答

  • 0

    创建度量以获取 StatusCLOSED 不同的每个日期的行数 .

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

    在数据透视表中使用此度量,您将得到:

    enter image description here

    enter image description here

    请注意,在您想要的结果示例中,08.12.2016的运行案例值为3,但在示例数据集中,我只能计算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

    如果这有帮助,请告诉我 .

相关问题