一步一步教你PowerBI数据分析:制作客户RFM数据分析
客户分析就是根据客户信息数据来分析客户特征,评估客户价值,从而为客户制订相应的营销策略与资源配置。通过合理、系统的客户分析,企业可以知道不同的客户有着什么样的需求,分析客户消费特征与商务效益的关系,使运营策略得到最优的规划;更为重要的是可以发现潜在客户,从而进一步扩大商业规模,使企业得到快速的发展。
企业客户分析可以从以下几个方面入手,对客户数据信息展开分析:
1、分析客户个性化需求
“以客户为中心”的个性化服务越来越受到重视。实施CRM的一个重要目标就是能够分析出客户的个性化需求,并对这种需求采取相应措施,同时分析不同客户对企业效益的不同影响,以便做出正确的决策。这些都使得客户分析成为企业实施CRM时不可缺少的组成部分。
2、分析客户行为
企业可以利用收集到的信息,跟踪并分析每一个客户的信息,不仅知道什么样的客户有什么样的需求,同时还能观察和分析客户行为对企业收益的影响,使企业与客户的关系及企业利润得到最优化。
3、分析有价值的信息
利用客户分析系统,企业不再只依靠经验来推测,而是利用科学的手段和方法,收集、分析和利用各种客户信息,从而轻松的获得有价值的信息。如企业的哪些产品最受欢迎,原因是什么,有什么回头客,哪些客户是最赚钱的客户,售后服务有哪些问题等。客户分析将帮助 企业充分利用其客户关系资源,在新经济时代从容自由地面对客户。
目前国内企业对客户的分析还很欠缺,分析手段较为简单,而简单的统计方法虽然可以在一定程度上得出分析结果,但因为不同企业发展中存在一定的不平衡性,利用简单的统计模式得出的结论容易有较大的误差,难以满足企业的特殊需求。因而企业需要有更加完善、合理的客户分析方案,进一步提高客户分析的合理性、一致性,并能在对 潜在客户的培养和发现中提供更多的决策支持。
本文将使用客户RFM模型来衡量客户价值,当然仅一个模型也无法完整并系统的分析客户,还是需要结合CRM系统中的数据,切勿过度依赖该模型来分析客户价值。该模型仅供决策参考。接下来我们来看一下RFM模型是什么?
RFM分析(Recency,Frequency,Monetary)是用来细分用户和衡量客户价值的一个重要工具,就是根据客户活跃程度和交易金额的贡献,进行客户价值细分的一种方法。
RFM的含义:
R(Recency):客户最近一次交易时间的间隔。R值越大,表示客户交易发生的日期越久,反之则表示客户交易发生的日期越近。
F(Frequency):客户在最近一段时间内交易的次数。F值越大,表示客户交易越频繁,反之则表示客户交易不够活跃。
M(Monetary):客户在最近一段时间内交易的金额。M值越大,表示客户价值越高,反之则表示客户价值越低。
本文中通过分析某个店铺客户消费数据,将会员分为以下8种,以便有针对性的做营销决策,实现精细化运营:
一、RFM数据源
我们准备的数据源中有很多的字段,由RFM模型的含义可知。我们需要通过订单日期判断R值,订单ID判断F值,销售额判断M值,客户ID是基础数据,其他的字段就是冗余字段
二、RFM值
1、确定R值
确定R值为指定日期和最近购买日期之间的差异天数,计算每个客户的最近一次消费日期。再根据截止日期的时间和最后一个交易日期的差值
RFM R =
AVERAGEX( DISTINCT('维度_客户'[客户名称]) ,
CALCULATE(
AVERAGEX( '事实_订单', DATEDIFF( [订单日期] , LASTDATE( '维度_RFM日期'[Date] ) , DAY ) ) ,
TREATAS( VALUES( '维度_RFM日期'[Date] ) , '事实_订单'[订单日期])
)
)
R最大值
RFM R MAX =
MAXX( ALL('维度_客户'[客户名称]) ,
CALCULATE(
AVERAGEX( '事实_订单' , DATEDIFF( [订单日期] , LASTDATE( '维度_RFM日期'[Date] ) , DAY ) ) ,
TREATAS( VALUES( '维度_RFM日期'[Date] ) , '事实_订单'[订单日期])
)
)
R最小值
RFM R MIN =
MINX( ALL( '维度_客户'[客户名称]) ,
CALCULATE(
AVERAGEX( '事实_订单' , DATEDIFF( [订单日期] , LASTDATE( '维度_RFM日期'[Date] ) , DAY ) ) ,
TREATAS( VALUES( '维度_RFM日期'[Date] ) , '事实_订单'[订单日期] )
)
R平均值
RFM R AVG = CALCULATE( [RFM R] , ALL('维度_客户') )
2、确定F值
交易次数值需要感觉非重复计数获得,这里根据虚拟关系筛选计数顾客交易次数
RFM F =
AVERAGEX( DISTINCT('维度_客户'[客户名称]) ,
CALCULATE('度量值'[顾客交易次数] , TREATAS( VALUES('维度_RFM日期'[Date]) , '事实_订单'[订单日期]))
)
F最大值
RFM F MAX =
MAXX( ALL('维度_客户'[客户名称]) ,
CALCULATE('度量值'[顾客交易次数] , TREATAS( VALUES('维度_RFM日期'[Date]) , '事实_订单'[订单日期]))
)
F最小值
RFM F MIN = MINX( ALL('维度_客户'[客户名称]) , CALCULATE('度量值'[顾客交易次数] , TREATAS( VALUES('维度_RFM日期'[Date]) , '事实_订单'[订单日期])))
F平均值
RFM F AVG = CALCULATE( [RFM F] , ALL('维度_客户') )
3、确定M值
M值为每个客户共享的销售金额
RFM M = AVERAGEX( DISTINCT( '维度_客户'[客户名称]) , CALCULATE('度量值'[销售金额], TREATAS( VALUES( '维度_RFM日期'[Date] ) , '事实_订单'[订单日期] ) ))
M最大值
RFM M MAX = MAXX( ALL( '维度_客户'[客户名称]) , CALCULATE('度量值'[销售金额], TREATAS( VALUES( '维度_RFM日期'[Date] ) , '事实_订单'[订单日期] ) ))
M最小值
RFM M MIN = MINX( ALL('维度_客户'[客户名称]) , CALCULATE('度量值'[销售金额], TREATAS( VALUES( '维度_RFM日期'[Date] ) , '事实_订单'[订单日期]) ))
M平均值
RFM M AVG = CALCULATE( [RFM M] , ALL( '维度_客户' ) )
三、确定客户类型
确定RFM值后,我们将R、F、M分别与平均值比较,计数出RFM的得分情况
RFM R 分数 = IF( NOT ISBLANK( [RFM R] ) , DIVIDE( [RFM R MAX] - [RFM R] , [RFM R MAX] - [RFM R MIN] ) * 100 )
RFM F 分数 = IF( NOT ISBLANK( [RFM F] ) , DIVIDE( [RFM F] - [RFM F MIN] , [RFM F MAX] - [RFM F MIN] ) * 100 )
RFM M 分数 = IF( NOT ISBLANK( [RFM M] ) , DIVIDE( [RFM M] - [RFM M MIN] , [RFM M MAX] - [RFM M MIN] ) * 100 )
四、新建辅助表
1、新建RFM分类表
可以直接输入数据,也可以通过Excel导入数据。
2、新建权重参数表
权重参数从0到100进行设定
参数_RFM R权重 = GENERATESERIES(0, 100, 1)
参数_RFM F权重 = GENERATESERIES(0, 100, 1)
参数_RFM M权重 = GENERATESERIES(0, 100, 1)
3、新建TOP参数表
参数_RFM TOP X = GENERATESERIES(0, 100, 1)
五、制作可视化报告
1、制作表格,拖放已经计算好的数据
2、制作客户RFM权重占比环形图
3、制作客户分类占比环形图
4、制作客户RFM得分排名条形图
5、制作切片器
切片器拖放辅助表中的权重R\F\M字段和TopX字段,并设置显示格式为下拉。日期切片器直接设置开启滑块
六、总结
客户RFM分析首先需要根据订单数据来计算RFM的值,其次通过辅助表进行补充动态设定的参数。再次通过RFM的值和最大值、最小值对比使用平均函数进行计算出RFM得分情况。通过辅助表客户分类维度,来确定客户所属分类。该模型可以动态根据企业对R,F,M设定不同的权重来计算客户的价值。
对于销售分析的指标的分析模型还有动态ABC分析模型,在后续得文章中会给大家展现。
一步一步教你PowerBI数据分析:制作客户RFM数据分析的更多相关文章
- 一步一步教你PowerBI利用爬虫获取天气数据分析
对于爬虫大家应该不会陌生,我们首先来看一下爬虫的定义:网络爬虫是一种自动获取网页内容的程序,是搜索引擎的重要组成部分.网络爬虫为搜索引擎从万维网下载网页,自动获取网页内容的应用程序.看到定义我们应该已 ...
- 使用Python一步一步地来进行数据分析总结
原文链接:Step by step approach to perform data analysis using Python译文链接:使用Python一步一步地来进行数据分析--By Michae ...
- 一步一步教你如何在linux下配置apache+tomcat(转)
一步一步教你如何在linux下配置apache+tomcat 一.安装前准备. 1. 所有组件都安装到/usr/local/e789目录下 2. 解压缩命令:tar —vxzf 文件名(. ...
- 一步一步教你将普通的wifi路由器变为智能广告路由器
一步一步教你将普通的wifi路由器变为智能广告路由器 相信大家对WiFi智能广告路由器已经不再陌生了,现在很多公共WiFi上网,都需要登录并且验证,这也就是WiFi广告路由器的最重要的功能.大致就是下 ...
- 一步一步教你使用Git
一步一步教你使用Git 互联网给我们带来方便的同时,也时常让我们感到困惑.随便搜搜就出一大堆结果,然而总是有大量的重复和错误.小妖发出的内容,都是自己实测过的,有问题请留言. 现在,你已经安装了Git ...
- 使用WPF教你一步一步实现连连看
使用WPF教你一步一步实现连连看(一) 第一步: 问题,怎样动态的建立一个10*10的grid(布局) for (int i = 0; i < 10; i++){ RowDefinition r ...
- 一步一步教你用 Vue.js + Vuex 制作专门收藏微信公众号的 app
一步一步教你用 Vue.js + Vuex 制作专门收藏微信公众号的 app 转载 作者:jrainlau 链接:https://segmentfault.com/a/1190000005844155 ...
- Ace教你一步一步做Android新闻客户端(一)
复制粘贴了那么多博文很不好意思没点自己原创的也说不出去,现在写一篇一步一步教你做安卓新闻客户端,借此机会也是让自己把相关的技术再复习一遍,大神莫笑,专门做给新手看. 手里存了两篇,一个包括软件视图 和 ...
- 一步一步教你实现iOS音频频谱动画(二)
如果你想先看看最终效果再决定看不看文章 -> bilibili 示例代码下载 第一篇:一步一步教你实现iOS音频频谱动画(一) 本文是系列文章中的第二篇,上篇讲述了音频播放和频谱数据计算,本篇讲 ...
随机推荐
- AJ学IOS(19)UI之QQ好友列表
AJ分享,必须精品 先看效果图 哈哈,这次猫猫给来个动态的图片,这个看起来带劲 实现思路 首先建立模型 这里用到的是一个双层的模型. cell的实现 这里一看其实就知道是一个tableView,我们自 ...
- AJ整理问题之:NSTimer准确吗?
NSTimer准确吗? 问题:NSTimer准确吗?如果不准确,怎么办? NSTimer的工作原理:假设timer每隔一段时间执行一次事件,很均匀的(例如每隔多少秒),假设在某一时刻cpu在做疯狂的大 ...
- svg整体缩放至指定大小
一.问题 svg画面跑在分辨率低的电脑上,导致不能完全显示. 二.要求 svg要能够根据电脑的屏幕大小自动缩放至适配电脑的尺寸. 三.实现 1.获取本机窗口高度.宽度 let clientWidth ...
- 纯js时钟特效详细代码分析实例教程
电子时钟是网上常见的功能,在学习date对象和定时器功能时,来完成一个电子时钟的制作是不错的选择.学习本教程之前,读者需要具备html和css技能,同时需要有简单的javascript基础. 先准备一 ...
- self不明白什么意思,我来帮助你了解self的含义
先看下面这段代码 # 用函数模仿类def dog(name, gender): def jiao(dog1): print('%s汪汪叫' % dog1["name"]) def ...
- [YII2] 展示页面显示图片 以及手机号隐藏为*和姓名隐藏姓为*,
- 支付宝开源非侵入式 Android 自动化测试工具 Soloπ
Soloπ(SoloPi)是支付宝开源的一个无线化.非侵入式的Android自动化测试工具,公测版拥有录制回放.性能测试.一机多控三项主要功能,能为测试开发人员节省宝贵时间. 本文是SoloPi团队关 ...
- MySQL之唯一索引、外键的变种、SQL语句数据行操作补充
0.唯一索引 unique对num进行唯一限制,表示num是独一无二的,uql是唯一索引名称 上面为联合索引:num和xx不能完全一样 1.外键的变种 a. 用户表和部门表 用户: 1 alex 1 ...
- MySQL基础知识和常用命令总结
说明:以下内容是阅读书籍<<MySQL必知必会>>的摘要和总结 检索数据 排序检索数据 过滤数据 使用通配符过滤 使用正则表达式进行搜索 创建计算字段 使用数据处理函数 汇总数 ...
- sql注入 pikachu
闭合条件的探测 数字型注入 burp抓包 分别测试 id=1 and 1=1和id=1 or 1=1 存在漏洞 字符型注入 ' 报错 探测闭合条件 ' order by 1# 未报错.构成闭合 同上有 ...