如何在更小的粒度上总结?
How to sum up at a lower granularity?
我创建了一个 DAX table。 table的粒度从低到高依次为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 处的记录数有什么想法吗?谢谢。
这是代码的相关部分:
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]))
这将删除所有行上下文 除了 您想要聚合的行上下文(与您正在做的完全相反)。
我创建了一个 DAX table。 table的粒度从低到高依次为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 处的记录数有什么想法吗?谢谢。
这是代码的相关部分:
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]))
这将删除所有行上下文 除了 您想要聚合的行上下文(与您正在做的完全相反)。