问题描述
我正在尝试在 Power Pivot 中创建符合以下定义的度量,并在数据透视图中显示它们的月度演变,将年份彼此叠加:
..For instance for new customers
定义 | 详情 |
---|---|
活跃 | 在一段时间内购买的客户 |
新客户 | 在同一日历年首次购买的活跃客户 |
重新激活的客户 | 在过去 2 个日历年内未购买但之前首次购买的活跃客户(即 2020 年活跃,意味着没有在 2018 年和 2019 年购买,但在 2017 年或之前首次购买) |
我的数据模型相当基本,有一个包含客户信息的客户表 Membership 和包含我的交易的 MemberPointsActivity,我将两者与 MembershipID 联系起来 你会在下面的代码中看到。我还有一个日历表 Calendar Transaction 链接到我在 MemberPointsActivity
中的交易日期Print screen of data model in Power Pivot
对于新客户,我采用了以下措施:
= VAR
MaxCalendarMTD=
CALCULATE(
MAX('Calendar Transaction'[Date]),DATESMTD('Calendar Transaction'[Date])
)
RETURN
CALCULATE(
DISTINCTCOUNT(
MemberPointsActivity[MembershipId]),MemberPointsActivity[Transaction Type]="Purchase",MemberPointsActivity[Pending]=FALSE(),Membership[First year of purchase] = YEAR(MaxCalendarMTD)
)
更难的部分是重新激活的客户,因为我实际上需要评估这些客户在过去 2 年中是否没有消费,这取决于评估衡量标准的时间。
我已经尝试了下面的代码,语法是正确的,但是我的 MemberShipWPurchased 过滤器似乎没有在返回计算中考虑在内。我无法将其链接到 Membership 表..
= VAR
MaxCalendarMTD =
CALCULATE(
MAX('Calendar Transaction'[Date]),DATESMTD('Calendar Transaction'[Date])
)
VAR
MemberShipWPurchased =
ADDCOLUMNS(
Membership,"@PurchasedLast2Year",CALCULATE(
CONTAINS(
MemberPointsActivity,MemberPointsActivity[Year of TransactionDate],YEAR(MaxCalendarMTD)-1
)
||
CONTAINS(
MemberPointsActivity,YEAR(MaxCalendarMTD)-2
),MemberPointsActivity[TransactionDate]<MaxCalendarMTD)
)
RETURN
CALCULATE(
DISTINCTCOUNT(
MemberPointsActivity[MembershipId]),Membership[First year of purchase] <> YEAR(MaxCalendarMTD),FILTER(MemberShipWPurchased,[@PurchasedLast2Year]=FALSE()
)
)
有什么想法吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)