计算基于活动创建的子活动数量

时间:2018-08-29 14:33:38

标签: dax

我有一个存储工作流(案例,子案例)的维度。我想对每个案例创建多少个子案例进行计数。

工作流程维度

Workflow
------------------------------
Case Number    WorkflowType
------------------------------ 
10             Case
20             Case
30             Case
20-1           Subcase
20-2           Subcase
20-3           Subcase
10-1           Subcase

我想要的愿望输出是,对于每种情况,都要计算创建了多少个子案例。

Workflow
------------------------------------------------
Case Number    WorkflowType      CountOfSubcases
------------------------------------------------
10             Case               1
20             Case               3
30             Case               0
------------------------------------------------
Total                             4

我有一个有效的当前dax度量值,但是在查看多行时,底部总和不显示,仅在选择一种情况时显示。

Total Subcases = 
VAR CC = FIRSTNONBLANK ( Workflow[Case Number], 1 )
RETURN
COUNTX (
    FILTER (
        ALL( Workflow ),
        SUBSTITUTE ( Workflow[Case Number], RIGHT ( Workflow[Case Number], 2 
          ), "" )
            = CC
            && Workflow[WorkflowType] = "SubCase"
    ),
    Workflow[WorkflowID]
 )

如果有人可以帮助我调整指标或提出新的指标,那就太好了。

注意:我将报告指向Analysis Services。

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以按以下步骤解决措施:

Total Subcases = 0 +
    COUNTX (
        FILTER (
            ALL( Workflow ),
            SUBSTITUTE ( Workflow[Case Number], RIGHT ( Workflow[Case Number], 2 ), "" )
                IN VALUES( Workflow[Case Number] )
            && Workflow[WorkflowType] = "SubCase"
        ),
        Workflow[WorkflowID]
    )

VALUES函数返回当前过滤器上下文中所有值的列表,而不仅仅是您之前选择的值。


注意:为使操作更容易,建议在查询编辑器阶段将Case Number列分为两列。然后,您不必使用所有的字符串操作。


编辑:请注意,x IN <Table[column]>等效于旧的CONTAINS语法:

CONTAINS(Table, [column], x)

因此,如果您不能使用IN,请尝试以下公式:

Total Subcases = 0 +
        COUNTX (
            FILTER (
                ALL( Workflow ),
                CONTAINS(
                    VALUES( Workflow[Case Number] ),
                    Workflow[Case Number],
                    SUBSTITUTE ( Workflow[Case Number],
                         RIGHT ( Workflow[Case Number], 2 ), "" )
                )
                && Workflow[WorkflowType] = "SubCase"
            ),
            Workflow[WorkflowID]
        )