首页 > 解决方案 > dax 聚合总和和计数,仅忽略过滤器上下文的某些部分

问题描述

我这里有这张桌子:

示例表

例如,我想制作一个表格,显示公司中有多少人的总分大于 8。所以我使用了这个公式:

ScoreOver8 =
COUNTROWS (
    FILTER (
        ADDCOLUMNS (
            SUMMARIZE ( activity, activity[person] ),
            "engagement", CALCULATE ( SUM ( activity[score] ) )
        ),
        [score] > 8
    )
)

这是结果:

公式的结果

现在我想添加另一个级别,所以我可以这样做:

下一层

并显示总分大于 8 的人参加了哪些类型,即使他们没有在该类型中获得所有分数。这不是发生的事情。会发生什么:

实际结果低一级

因为虽然在总体公司级别上,每个公司都有一个人获得超过 8 分,但他们不一定在任何一项任务中获得这 8 分。

所以我的问题是如何制定指标,以便它只关心公司级别的过滤器上下文,而不关心类型级别的过滤器上下文,这样我就可以做我想做的事了。

我正在使用 excel 2016。我知道 power bi 中有很多花哨的新方程。唉。这就是为什么我仍然在 addcolumns 总结语法的原因。我想知道我是否可以做类似的事情:

CALCULATE ( SUM ( activity[score] ), FILTER ( ALL ( [tasks] ), ... ) )

太糟糕了,我只是在写完整个问题后才想到尝试这个。我会离开它。也许别人有它。

标签: powerbidaxexcel-2016

解决方案


您应该能够使用 ALL(或等效的 REMOVEFITLES)删除类型过滤器。

ScoreOver8 =
COUNTROWS (
    FILTER (
        ADDCOLUMNS (
            SUMMARIZE ( activity, activity[person] ),
            "engagement", CALCULATE ( SUM ( activity[score] ), ALL ( activity[type] ) )
        ),
        [score] > 8
    )
)

推荐阅读