分享

PowerBI用户留存分析

 橘子彩虹萱 2021-11-02

  之前介绍了用MySQL实现用户留存的分析,包括日、周、月维度的留存,可以参考《MySQL留存分析》《MySQL周留存率/月留存率》这两篇。整体思路是用销售数据表格和自身做一个连接,然后用时间进行判断出N期的留存用户。在PowerBI里面也是可以用这种思路来实现的,先计算出每一期的用户明细,然后再merge一下,再判断一下就可以求出每个用户的留存情况。这个思路在数据量小的时候还可以用,实践了一下,当数据量超过100万行的时候,单个计算机基本上就跑不动了。 

  所以今天介绍一下在PowerBI里面用度量值的方式来实现,让我意外的是,PowerBI这种方式运行的效率真的强大,试了一下500万条的数据量,一下就计算出结果了。所以PowerBI总是给人惊喜,下面就来讲一下思路和实现效果。

  我们还是分成日、周、月三个维度来实现,首先是日的维度。我们先从次日留存用户开始,整体思路是,我们先建一个中间表,中间表通过SUMMARIZE函数聚合去重,保留用户id和去重后用户有购买的日期,再增加一列来判断用户次日是否有购买,如果有购买就返回1,否则返回空值。先看看这个中间表的DAX语句和结果↓

Table = ADDCOLUMNS( SUMMARIZE( '销售数据','销售数据'[用户id],'date'[日期] ), 'off_day1',VAR first_date = [日期]+1 RETURN CALCULATE([用户数],'date'[日期]=first_date))

图片

  然后我们只需要对这个中间表的值列求和就可以计算出次日的留存用户数量了,DAX语句和结果如下↓

次日留存数 = VAR t1 = ADDCOLUMNS(    SUMMARIZE(        '销售数据','销售数据'[用户id],'date'[日期]    ),    'off_day1',VAR first_date = [日期]+1        RETURN CALCULATE([用户数],'date'[日期]=first_date))RETURN    SUMX(t1,[off_day1])

图片

  继续修改一下偏移天数值,就可以求得二日、三日、N日后的留存用户数,我们计算4天的数据,结果如下↓

图片

  最后再做一个除法就可以求出每一天的N日留存率了,我们再给留存率标一个颜色,就是大家经常看到的N日留存数据了↓

图片

  有了数据,有了颜色,就可以找规律发现问题了。接下来说一下周/月的留存率计算,两个思路都是一样的,因为涉及时间偏移,所以又用上了之前精心准备的月号和周号,整体思路和日一样的,我们只需要把日期改成周号和月号就可以了。就直接给出度量值和结果了,因为思路都是一样的↓

次周留存数 = VAR t1 = ADDCOLUMNS( SUMMARIZE( '销售数据','销售数据'[用户id],'date'[weeknum] ), 'off_day1',VAR first_date = [weeknum]+1        RETURN CALCULATE([用户数],'date'[weeknum]=first_date))RETURN SUMX(t1,[off_day1]

图片

次月留存数 = VAR t1 = ADDCOLUMNS(    SUMMARIZE(        '销售数据','销售数据'[用户id],'date'[monthnum]    ),    'off_day1',VAR first_date = [monthnum]+1        RETURN CALCULATE([用户数],'date'[monthnum]=first_date))RETURN    SUMX(t1,[off_day1])

图片

图片

图片

End

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多