如何总结较低的粒度?

时间:2018-07-11 01:56:38

标签: powerbi powerbi-desktop

我创建了DAX表。该表的从低到高的粒度为Expiry_Date_Year_Month,Expiry_Member_Type,Renewal_Channel。在DAX代码下方。

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

我在计算“ Number_of_Record”度量时遇到麻烦。它是在Expiry_Member_Type级别汇总的数字。我下面的代码不会执行此操作,但是会显示Renewal_Channel级别的记录数。

请问有关汇总Expiry_Member_Type中的记录数的任何想法?谢谢。

1 个答案:

答案 0 :(得分: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]))

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