零基础入门!手把手教你用Power BI做RFM分析,轻松锁定高价值客户
Power BI财销一体分析——RFM分析实践
欢迎来到Powerbi小课堂,前几期课程我们深入学习了各种财务、销售实用案例。
本期我将带领大家整合分散知识点,逐步构建一个全面的分析模型,涵盖封面、登录页、导航页、CEO驾驶舱等模块,以及趋势、产品、畅销品等多维度分析,同时融入度量值嵌套、计算组、动态指标、TOPN分析等高阶技巧。
今天我将为大家带来RFM分析应用实践,RFM模型是一种用于客户价值分析的经典营销工具,通过三个核心维度对客户进行细分,企业可快速定位核心客户群体,优化营销资源分配,提升客户生命周期价值(CLV)。这一工具广泛应用于企业战略规划,帮助公司评估业务组合并优化资源分配。
接下来,让我们直接进入今天的实用技巧分享环节。如果您在实践过程中遇到任何问题,欢迎留言交流。请关注我们的公众号《BI研究所》,以获取更多案例更新和学习资源。

想要一份这样的可视化看板吗?想学吗?我教你呀!![]()
一、案例背景:
我司作为专业运动自行车跨国销售企业,业务范围涵盖自行车、组件、配件及运动服装。当前,我们正致力于开发财销一体化分析系统,旨在通过技术手段实现财务与销售的紧密结合,促进数据共享与流程优化,进而提升决策效率与运营效率,优化资源配置,强化风险控制,为企业的可持续发展注入动力。
二、设计思路:
通过成本、销量、利润及销售维度精准掌控财务状况,从产品、客户及地域三个层面深入分析企业运营趋势,
(1)、准备基础数据
(2)、数据清洗
(3)、建立关系视图
(4)、个性美化设计
(5)、数据建模(度量值)
(6)、制作可视化报告
首先我们要理解RFM分析是什么:
RFM的含义
R(Recency - 最近一次消费):客户最近一次购买的时间间隔,反映其活跃度。间隔越短,客户价值越高。
F(Frequency - 消费频率):客户在特定周期内的购买次数,反映忠诚度。频率越高,客户黏性越强。
M(Monetary - 消费金额):客户在特定周期内的总消费金额,反映贡献度。金额越高,客户价值越大。
模型作用
客户分层:将客户分为高价值、潜力、流失风险等群体。
精准营销:针对不同群体设计促销活动(如高价值客户专属优惠、流失客户召回活动)。
资源优化:集中资源维护高价值客户,提升ROI。
指标计算:
R值:当前日期 - 最后一次购买日期(如:30天前)。
F值:统计周期内的订单数(如:过去1年购买5次)。
M值:统计周期内的总消费额(如:过去1年累计消费5000元)。
评分划分:对每个维度按价值高低打分(如1-5分,5分为最优)。
客户分群:根据R/F/M组合划分群体(常见分群见下表)。

应用场景
电商:识别高频高消费用户,推送会员权益。
零售:对久未消费客户发送折扣码。
服务业:为高价值客户提供个性化服务。
在建模之前,我们要先了解下此分析方法的难点,此模型难点并不多,最大的难点就是客户分群划分,为了更直观地呈现数据,今日我们大部分的指标建立都使用新建列公式,在这里我要啰嗦一句,数据建模主要还是使用度量值,使用列公式会使模型运行速度下降。
★数据建模:RFM分析
公式:(新建列)
最后一个交易日期 = MAXX(FILTER('销售',EARLIER('客户表'[客户关键])='销售'[客户关键字]),'销售'[订单日期键])
公式逻辑解析:
MAXX():返回表中某列的最大值(此处取最大日期,即最近一次交易)。
FILTER():筛选满足条件的表数据。
EARLIER():引用"当前行"的上下文值(类似循环中的临时变量)。
1.
筛选客户交易记录
FILTER('销售', EARLIER('客户表'[客户关键]) = '销售'[客户关键字])
→ 在'销售'表中,筛选出与当前客户('客户表'[客户关键])匹配的所有交易记录。
提取最大日期
MAXX(筛选后的表, '销售'[订单日期键])
→ 从筛选出的交易记录中,找出最大的订单日期(即最后一次购买日期)。
公式:(新建列)
R(消费日期差) = DATEDIFF([最后一个交易日期],LASTDATE('日期表'[日期]),HOUR)
公式逻辑解析:以bayA类产品的客户数为例
DATEDIFF():计算两个日期之间的差值,支持DAY/HOUR/MINUTE等单位。
LASTDATE():返回当前筛选上下文中的最后一个日期(如报表筛选器的截止日期)。
公式:(新建列)
F(交易次数) = '度量值存放'[订单数量] M(销售金额) = '度量值存放'[总销售额]
公式逻辑解析:
之前我们已经建立过关于订单数量、消费金额的度量值,这里我们直接引用为列就可以
公式:(新建列)
RFM = IF('客户表'[R(消费日期差)]<=AVERAGE('客户表'[R(消费日期差)]),2,1) &IF('客户表'[F(交易次数)]>=AVERAGE('客户表'[F(交易次数)]),2,1) &IF('客户表'[M(销售金额)]>=AVERAGE('客户表'[M(销售金额)]),2,1)
公式逻辑解析:

通过&符号将三个评分拼接成三位数代码,例如:
"222":R/F/M均优于平均(高价值客户)
"121":R值差、F值优、M值差(需激活的频繁低消费客户)
R值的特殊性
R值(消费间隔)与其他两个维度相反:越小越好(间隔短=活跃),因此用<=判断是否优于平均。
平均值计算的上下文
AVERAGE()会根据当前报表筛选上下文动态计算。例如:
若筛选"2023年数据",则平均值仅基于2023年客户行为;
公式:(新建列)
会员分组 = SWITCH('客户表'[RFM], "111","流失会员", "112","重要挽留会员", "121","一般保持会员", "122","重要保持会员", "211","新会员", "212","重要发展会员", "221","一般价值会员", "222","重要价值会员", BLANK())
公式逻辑解析:
根据业务含义对照表,详细梳理并明确逻辑流程

拓展:依照会员分组,结合公司策略直观呈现维护客户的方式,
营销动作 = SWITCH( '客户表'[会员分组], "重要价值会员", "赠送年度VIP会员资格", "重要挽留会员", "限时7折+包邮优惠券", "新会员", "第二单立减50元", "无动作" )
公式:(度量值)
客单价 = DIVIDE([总销售额],[客户数量]) 客单量 = DIVIDE([销量],[客户数量])
公式逻辑解析:
总销售额 ÷ 独立客户数 = 每个客户的平均消费金额
总销量 ÷ 独立客户数 = 每个客户平均购买的商品件数
风险信号:
客单价高但客单量极低 → 可能依赖少数大单,客户覆盖面不足。
客单量高但客单价低 → 可能薄利多销,利润率承压。
客单价揭示客户消费能力,指导价格策略和品类规划。
客单量反映购买频次和广度,驱动库存和促销设计。
结合使用可全面评估客户价值,避免"高销售额但低利润"的陷阱

★制作可视化报告
第一步:设置报表页格式选项,选择画布背景,上传我们设计好的素材
第二步:插入一个矩形,填充颜色,打开阴影、发光功能
第三步:添加主页图标图像,启用交互功能,设置类型为书签,并指定书签为主页,点击该图标即可快速跳转至主页。
第四步:插入图像导航图标。
第五步:插入四个切片器,第一个切片器拖入日期表日期字段,第二个切片器拖入客户表会员类型字段,第三个切片器拖入销售订单表渠道字段,第四个切片器拖入客户表城市字段,插入四个文本框分别输入日期、会员类型、渠道和城市。分别置于对应切片器前,调整位置到页面顶端,视图窗口点击选择功能,将这种可视化选中,右键点击分组,重命名为切片器组。
第六步:插入一个第三方视觉对象Image Grid,将销售区域表图片链接拖入Image url,将度量值客户数量拖入Value。
第七步:插入一个环形图,将度量值客户数量拖入值区域,图例使用客户表会员类型,设置视觉对象格式,关闭图例打开详细信息标签,选择类别总百分比。
第八步:插入一个矩阵图,将客户表会员类型字段拖入行区域,将销售区域表图像字段拖入列区域,再将度量值消费贡献率拖入值区域。
第九步:插入一个树状图,将度量值客户数量拖入分析区域,将客户表国家-地区、城市、会员类型和产品表子类别作为解释依据。
第十步:插入一个散点图,值拖入分客户表会员类型字段,将度量值客单价拖入X轴,将客单量拖入Y轴,大小拖入度量值消费贡献率,客户表国家-地区字段作为图例。
第十一步:参照图示对页面布局进行美化。
第十二步:为此页面添加一个书签,并将其拖动至页面导航的书签分组内,此时,书签将自动显示在书签导航器中。

好的,今天的讲解就到这里。后期课程也会逐渐增加难度,如果在学习过程中需要帮助,欢迎随时联系作者,精彩内容,敬请期待![]()
获取模板文件或咨询,联系瓶子微信wdfyqx
公众号《BI研究所》

浙公网安备 33010602011771号