我创建了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中的记录数的任何想法?谢谢。
答案 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]))
这将删除所有要合并的行上下文 (与您所做的完全相反)。