DAX:在带有计数器的过滤器上进行过滤

DAX: Filter on a filter with countrows

我正在处理一个跟踪公司所有权的数据集(关系)。 如果一家公司有 8 个所有者,则该公司在数据集中有 8 行,每个所有者一行。所有者可以拥有多个公司。我想要一个计算列,该列显示特定所有者在该部门拥有多少家公司。有点像;对于每一行,搜索一个或多个所有者在关系数据库中出现的次数,但只计算那些与母公司具有相同行业代码的所有者。这是我目前所拥有的:

=
CALCULATE (
    COUNTROWS ( Relations );
    FILTER (
        Relations;
        Relations[participantnumber] = EARLIER ( Relations[participantnumber] )
    );
    FILTER ( Relations; Relations[127_industry] = Relations[127_industry] )
)

但这只给出了一个所有者被提及的公司总数,而不管行业代码如何。 谢谢!

试试这个:

=
CALCULATE (
    COUNTROWS ( Relations );
    ALLEXCEPT( Relations; Relations[participantnumber]; Relations[127_industry])
    )

工作原理:对于每一行,您需要访问整个 table 以便计算所有相关关系。但是,您想要按当前行的参与者和行业筛选总数。 ALLEXCEPT 做到了这一点 - 它允许您在保留当前参与者和行业的同时查看整个 table。