微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PowerPivot - 临时表和数据沿袭问题

如何解决PowerPivot - 临时表和数据沿袭问题

我正在尝试在 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 举报,一经查实,本站将立刻删除。