2

I created a DAX table. The granularity of the table from low to high is Expiry_Date_Year_Month, Expiry_Member_Type, Renewal_Channel. Below the DAX code.

MemberRenewChannel =
UNION(
summarize(
SELECTCOLUMNS(MemberRenew,
, "Expiry_Date_Year_Month", MemberRenew[Expiry_Date_Year_Month]
, "Expiry_Member_Type", MemberRenew[Expiry_Member_Type]
, "Renewal_Channel", MemberRenew[Renewal_Channel]
),
[Expiry_Date_Year_Month], [Expiry_Member_Type], [Renewal_Channel]
, "Measure", "Renewal"
, "Value", SUM(MemberRenew[Renewal])
), -- Renewal
summarize(
SELECTCOLUMNS(MemberRenew,
, "Expiry_Date_Year_Month", MemberRenew[Expiry_Date_Year_Month]
, "Expiry_Member_Type", MemberRenew[Expiry_Member_Type]
, "Renewal_Channel", MemberRenew[Renewal_Channel]
),
[Expiry_Date_Year_Month], [Expiry_Member_Type], [Renewal_Channel]
, "Measure", "Number_of_Record"
, "Value", calculate(sum(MemberRenew[Renewal]), all(MemberRenew[Expiry_Date_Year_Month], MemberRenew[Expiry_Member_Type] ) )

) -- Number_of_Record
) -- union

I have trouble calculating the "Number_of_Record" measure. It is the number summed up at the Expiry_Member_Type level. The code I have below doesn't do that but shows the number of records at the Renewal_Channel level.

Any ideas on aggregating the number of records at the Expiry_Member_Type please? Thank you.

4

1 回答 1

1

这是代码的相关部分:

calculate(
    sum(MemberRenew[Renewal]),
    all(MemberRenew[Expiry_Date_Year_Month], MemberRenew[Expiry_Member_Type]))

在这里,您正在对Renewal所有前两列进行求和,但Renewal_Channel行上下文仍然有效,因此您将获得该级别的总和。

由于您希望在与前两列对应的级别上求和,因此您需要保留该行上下文而不是删除它。

试试这个:

calculate(
    sum(MemberRenew[Renewal]),
    allexcept(MemberRenew,
        MemberRenew[Expiry_Date_Year_Month],
        MemberRenew[Expiry_Member_Type]))

这将删除所有行上下文,除了您要聚合的行上下文(与您所做的完全相反)。

于 2018-07-11T16:13:12.937 回答