通过筛选上下文筛选和求和第二列

Filter and sum a second colunmn by filter context

我有一个 table,其中包含 CompanyID、PartnerCompanyID 和 Sales。如果客户是集团合作伙伴公司,则在另一个 PartnerCompanyID 列中填充内部客户的 CompanyID。

我想对销售额求和,但仅限于过滤器上下文中公司之间的内部销售额以外的销售额。那是没有(空的)PartnerCompanyID 或 PartnerCompanyID 不是过滤器上下文中的 CompanyID 的销售额。

Model

我试过

SalesExtern = CALCULATE(SUM(Sales[Sales]);Filter(Sales;NOT(CONTAINS(ALLSELECTED(Company[CompanyID]);Company[CompanyID];LASTNONBLANK(Sales[PartnerCompanyID];"")))))

总和似乎没问题,但每行的值是错误的:

Model2

PBIX File

非常感谢:)

为什么不用像这样更简单的东西?

SalesExtern = CALCULATE(SUM(Sales[Sales]);
                  FILTER(Sales; ISBLANK(Sales[PartnerCompanyID])))

编辑:试试这个。

使用建模下的新建 Table 创建 Company 的副本 table:

PartnerCompany = Company

创建从 PartnerCompany[CompanyID]Sales[ParterCompanyID] 的关系。

按如下方式定义新度量:

ExternalSales = 
    VAR SelectedClusters = CALCULATETABLE(VALUES(Company[Cluster]), ALLSELECTED(Sales))
    RETURN CALCULATE(SUM(Sales[Sales]), NOT(PartnerCompany[Cluster] IN SelectedClusters))