人生没有彩排
每一天都是现场直播

在PowerBI中找出连续三月都有购买的新客户

连续三个月都有购买行为的新客户具有重要价值,这类客户往往具有较高的忠诚度和长期价值潜力,是企业重点维护的对象。本篇文章将介绍如何在PowerBI中找出这一类关键人群。

问题描述

判断每个客户是否为连续三月都有购买的新客户,定义为如下:

1、以事实表最后一个日期所在月份为锚点,在过去的三个月中每个月都有购买行为

2、在过去的三个月之前不存在购买行为

例如:事实表最后的日期为:2021年5月15日,那么在2021年3月、4月以及5月的每个月中都有购买行为,并且在2021年3月1日之前无购买行为的客户,即为连续三月都有购买的新客户。

具体问题如下图所示:

本案例的初始数据如下:

订单表:

日期 客户名称 数量
2020年10月1日 A 2
2020年11月1日 B 6
2020年10月1日 C 2
2020年11月1日 A 2
2020年11月1日 B 6
2020年11月1日 C 2
2020年12月1日 A 2
2020年12月1日 B 6
2020年12月1日 C 2
2021年1月1日 A 2
2021年1月1日 B 6
2020年10月1日 C 2

若需其它辅助表等,可自行创建并建模。

解题要点

本案例的解题思路比较直接,可以使用表构造器配合时间智能函数,直接迭代最后三个月,先看下某个客户是否在每个月都有购买记录,然后再看看其在过去三个月之前是否有购买记录,从而过滤掉老客户即可。

解决方案

首先,数据模型如下图所示:

然后,创建如下度量值:

是否为连续三月都有购买的新客户 = 
VAR N = 3
VAR MaxDate = LASTDATE(ALL('订单表'[日期]))
VAR IsContinueBuy = 
    SUMX(
        GENERATESERIES(0,N-1),
        CALCULATE(NOT ISEMPTY('订单表'),PARALLELPERIOD(MaxDate,-[value],MONTH))*1
    )=N
VAR IsNewCustomer = CALCULATE(ISEMPTY('订单表'),'订单表'[日期]<=EOMONTH(MaxDate,-N))
RETURN
IF(IsContinueBuy && IsNewCustomer && ISINSCOPE('订单表'[客户名称]),"是","否")

然后创建一个矩阵,并将客户名称字段作为行标签,再将上面的度量值放入矩阵的值字段即可,如下图所示:

总结

以上方法仅供参考,若有更优雅的解决方案,欢迎留言讨论,或者加入我们的技术交流群,一起享受这种思维碰撞的快乐吧!

PBI/DAX技术交流群(QQ):344353627

赞(0) 打赏
未经允许不得转载:夕枫 » 在PowerBI中找出连续三月都有购买的新客户
订阅评论
提醒
guest
0 评论
最新
最久 最赞
内联反馈
查看所有评论

觉得文章有用的话就支持一下吧~

感谢您的打赏支持,我将持续输出有价值的内容!

支付宝扫一扫打赏

微信扫一扫打赏