Excel 分析用户复购情况 嵌套数据透视

2023-10-28 13:40

本文主要是介绍Excel 分析用户复购情况 嵌套数据透视,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、业务需求

某APP产品为了分析新用户的复购情况,提供某电商平台2022年1-7月销售数据。现希望根据7个月的用户购买数据,分析本次活动的用户复购情况
分析业务需求:

  • 方法:数据透视嵌套数据透视;
  • 指标:新用户的复购率;
  • 目标:观察新用户的复购率得出复购情况。
  • 实现过程
    分析新用户的复购情况,可以从新用户的购买行为入手:了解新用户的首次购买行为,例如他们购买的产品或服务、购买的时间、购买数量、购买金额等。这有助于企业了解新用户的需求和购买偏好,并制定相应的营销策略。
    ​ 1、分析月新增用户和月复购用户的人均订单数。
    ​ 2、分析月新增用户和月复购用户的人均消费(ARPU即Average Revenue Per User);
    ​ 3、分析月新增用户的复购率。

定义月新增用户:若用户首次购买行为发生在某月,在这个月该用户无论发生几次购买行为均被定义为新增用户;
定义月复购用户:若用户在首次购买月之后再发生购买行为则被定义为月复购用户。

介绍ARPU

ARPU是一种衡量公司或运营商在特定时间内每个用户平均收入的指标,通常用于评估移动运营商、互联网服务提供商和游戏开发商等行业。ARPU(平均每用户收入)的计算公式为:

计算公式:ARPU = 总收入 ÷ 用户数量

例如,如果一个公司在某个季度内获得了10,000的收入,并且该公司有1,000个用户,则其ARPU为10。

ARPU可以帮助公司了解他们每个用户带来的价值,并可用于比较不同时间段、地区或产品之间的表现。高ARPU通常意味着该公司的用户具有更高的付费意愿或使用频率,或者该公司的产品和服务具有更高的附加值。然而,ARPU并不能完全反映公司的盈利能力,因为它未考虑到公司的成本,例如营销费用和服务成本。

二、制定操作步骤


MySQL:

1、处理数据:对列名进行重命名,修改为英文,将重命名的数据导入到数据库中,接下来的操作都在数据库中进行。
2、统计计算:获取月新增用户和月复购用户的人均订单数、ARPU以及月新增用户的复购率。


Excel:

1、收集数据:对原始数据进行处理。
2、数据透视:获取月新增用户和月复购用户的人均订单数、ARPU以及月新增用户的复购率。


三、根据操作步骤计算用户留存率

------------------------------------------------Excel--------------------------------------------

1、处理数据:

不论是月新增用户还是月复购用户,都是围绕月进行的,所以首先获取“销售月”,使用如下公式:

= month(D2)

根据月新增用户的定义,首先要知道每个用户的首次购买月份

这里注意,注册月并不一定是首次购买月份,存在用户注册后其他月再购买的情况。

所以要得到用户的“首次购买月”,需要对用户分组求销售月的最小值,这样就得到每个用户的首次购买月。我们知道数据透视具有分组聚合的功能,所以采取数据透视的方法获取“首次购买月”。

利用“vlookup”公式,在《首次购买月》中按照会员编号查找最小值,并放在《原始数据》中。具体公式如下:

=VLOOKUP(A2,首次购买月!A:B,2,FALSE)

如何判断记录是新增还是复购?使用“if”函数,具体公式如下:

=IF(F2=G2,"新增","复购")

在这里插入图片描述

2、数据透视:

2.1 月新增用户和月复购用户的人均订单数

计算月新增用户和复购的人数:复制会员编号、销售月、新增&复购这三列到《人均订单—excel》表中,对数据去重后插入数据透视表,拖动“销售月”为行,“新增&复购”为列,对会员编号计数。
在这里插入图片描述

计算月新增用户和复购的订单数:复制订单编号、销售月、新增&复购这三列到《人均订单—excel》表中,插入数据透视表,拖动“销售月”为行,“新增&复购”为列,对订单编号计数。
在这里插入图片描述

将数据透视表中的数分别放在月新增用户和月复购用户的人均订单表中,并求平均值:
在这里插入图片描述

最后画出来的月新增用户和月复购用户的人均订单图如下:
在这里插入图片描述

2、月新增用户和月复购用户的人均消费

2.1 月新增用户和月复购用户的人均消费

计算月新增用户和复购的消费额:复制销售金额、销售月、新增&复购这三列到《人均消费—excel》表中,插入数据透视表,拖动“销售月”为行,“新增&复购”为列,对销售金额求和。
在这里插入图片描述

将数据透视表中的数分别放在月新增用户和月复购用户的人均消费表中,并求平均值,最后画出来的月新增用户和月复购用户的人均订单图如下:
在这里插入图片描述

3、月新增用户的用户留存(复购)率

首先计算第几月:销售月 - 首次购买月。

  • 对会员编号、首次购买月、第几月同时去重之后。使用去重后的数据插入数据透视表,拖动“首次购买月”为行,“第几月”为列,“会员编号”为值。
  • 右键选择值显示方式—百分比;基本字段:第几月,基本项:0。即可得到第N月的新用户留存率。
    在这里插入图片描述

最后复购率的计算结果和复购率图表如下:

在这里插入图片描述

------------------------------------------------MySQL--------------------------------------------

1、处理数据:

对列名进行重命名,修改为英文,并导入数据

创建表sale_info(会员编号user_id;订单编号order_id;注册日期login_date;销售日期sale_date;销售金额sale;销售月sale_month)

在这里插入图片描述

2、统计计算

获取月新增用户和月复购用户的人均订单数、ARPU以及月新增用户的复购率。

2.1 获取月新增用户和月复购用户的人均订单数

计算月新增用户数:首先对用户分组求每个用户的首次购买月份;再把结果按首次购买月份分组后对用户编号计数获得用户数。

#月新增用户的人数
selectmin_month,count(user_id)
from(select distinctuser_id,min(sale_month) as min_monthfrom sale_infogroup by user_id
) a
group by min_month

计算月新增用户的订单数:从sale_info表中找到每个月新增用户和首次购买月的记录,然后按照销售月分组计数,即可获得月新增用户的ing单数。

#月新增用户的订单数
selectsale_month,count(user_id) as cnt_order
from sale_info a
where (a.user_id,a.sale_month) in(selectuser_id,min(sale_month) as min_monthfrom sale_infogroup by user_id)
group by sale_month
order by sale_month

月新增用户的人均订单数:不想让sql代码看起来太复杂,所以将sql的计算结果复制到excel中做求月新增用户的人均订单数处理。
在这里插入图片描述

计算月复购用户数:月复购用户数 = 月购买用户数 - 月新增用户数,下面计算月购买用户数:

#月购买用户的人数
select sale_month,count(distinct user_id)
from sale_info
group by sale_month
order by sale_month

计算月复购用户的订单数:同理,月复购订单数 = 月购买订单数 - 月新增订单数,下面计算月购买订单数:

#月购买用户的订单数
select sale_month,count(user_id) as cnt_order
from sale_info
group by sale_month
order by sale_month

月复购用户的人均订单数:将sql的计算结果复制到excel中做求月复购用户的人均订单数处理。
在这里插入图片描述

2.2 获取月新增用户和月复购用户的人均消费

月新增用户的销售额:计算月新增用户的消费金额:从sale_info表中找到每个月新增用户和首次购买月的记录,然后按照销售月分组对销售金额求和,即可获得月新增用户的消费。

#月新增用户的销售额
selectsale_month,round(sum(sale),2) as sum_sale
from sale_info a
where (a.user_id,a.sale_month) in(select distinctuser_id,min(sale_month) as min_monthfrom sale_infogroup by user_id
)
group by sale_month
order by sale_month

月新增用户的人均消费:将sql的计算结果复制到excel中做求月新增用户的人均消费处理。
在这里插入图片描述

计算月复购用户的消费金额:同理,月复购消费金额 = 月购买消费金额 - 月新增消费金额,下面计算月购买消费金额:

#月购买用户的销售额
select sale_month,round(sum(sale),2) as sum_sale
from sale_info
group by sale_month
order by sale_month

月复购用户的人均消费:将sql的计算结果复制到excel中做求月复购用户的人均订单数处理。
在这里插入图片描述

2.3 月新增用户的复购率

按照首次购买月分组求留存率。下面是求第2月的留存率:

#3、统计每个月的新增用户的第N月留存率
select min_month,count(sale_month)/count(min_month) as2from(select distinctmain.user_id,attr.sale_month,min_monthfrom(#统计月新增用户的记录selectuser_id,min(sale_month) as min_monthfrom sale_infogroup by user_id) mainleft join sale_info attr on main.user_id = attr.user_id and sale_month-min_month = 1
) temp
group by min_month
order by min_month

运行temp的结果如下:

user_id		sale_month		min_month
3108072				5				4
3109779				5				4
3128885				6				5
13387207			3				2
14051088			5				4
13311641			2				1
13395869			3				2
14128438			5				4
14024326			4				3
13196539			2				1
13982546			4				3
14028152			5				4
。。。。。。。。。。。。。。

最终运行结果:

月   第2月
1		0.1734
2		0.2688
3		0.2356
4		0.2092
5		0.2068
6		0.1688
7		0

依次修改sale_month-min_month = N-1 的数值就可以得到第N月的复购率,分别复制到excel中,如下:
在这里插入图片描述

四、得出结论

1、结论:

根据提供的数据,可以得出新用户在不同月份内的复购率情况。通过计算平均值可以了解到整体的趋势:

  • 每个月之后的复购率逐渐下降,表明新用户的忠诚度和回购率有所降低。
  • 新用户在第2-3个月之间的复购率相对较高,但在第4个月之后开始急剧下降,说明企业应该特别注重第4个月以后的用户维护和营销策略。
新增用户月份第1月第2月第3月第4月第5月第6月第7月
110.17340.14490.12350.14960.14250.1211
210.26880.16760.19940.14160.15610
310.23560.19830.17820.146600
410.20920.20630.1433000
510.20680.15570000
610.168800000
71000000
求平均121.04%17.46%16.11%14.59%14.93%12.11%
  • 分析人均订单和人均消费:发现新增用户的人均下单数和消费远低于复购用户,但整体趋势大致一样,在4月不论是新增还是复购用户的订单数都下降,但是销售额反而是最高的。

    • 新用户和复购用户的人均订单数随着时间的推移而增加,这表明企业的市场营销策略和客户服务正在发挥作用。
    • 大多数月份内,复购用户的人均订单数高于新用户的人均订单数,这表明复购用户更加忠诚并且更有可能在未来继续购买。
    • 在第五个月之后,新增用户和复购用户的人均订单数都出现了较大幅度的增长,这可能是由于该时期涉及到某些促销活动或者新产品的推出,从而吸引了更多的订单。
2、建议:

通过分析这些数据,企业可以针对性地制定改进措施,以提高新用户的忠诚度和复购率。例如,可以尝试以下做法:

  • 针对第4个月以后的新用户实施更具吸引力的优惠和促销活动,以鼓励他们再次购买。
  • 针对新增用户:了解新用户的需求和使用场景,适时推出新产品或服务,以满足他们的需求和期望。
  • 针对复购用户:企业可以开展更多的回馈活动,例如赠送礼品、折扣等,激励他们继续购买。
  • 加强客户服务和售后支持,提高用户体验和满意度,从而增强用户忠诚度。

这篇关于Excel 分析用户复购情况 嵌套数据透视的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/293586

相关文章

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

Redis中的有序集合zset从使用到原理分析

《Redis中的有序集合zset从使用到原理分析》Redis有序集合(zset)是字符串与分值的有序映射,通过跳跃表和哈希表结合实现高效有序性管理,适用于排行榜、延迟队列等场景,其时间复杂度低,内存占... 目录开篇:排行榜背后的秘密一、zset的基本使用1.1 常用命令1.2 Java客户端示例二、zse

Redis中的AOF原理及分析

《Redis中的AOF原理及分析》Redis的AOF通过记录所有写操作命令实现持久化,支持always/everysec/no三种同步策略,重写机制优化文件体积,与RDB结合可平衡数据安全与恢复效率... 目录开篇:从日记本到AOF一、AOF的基本执行流程1. 命令执行与记录2. AOF重写机制二、AOF的

Spring Boot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)

《SpringBoot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)》本文将以一个实际案例(用户管理系统)为例,详细解析SpringBoot中Co... 目录引言:为什么学习Spring Boot分层架构?第一部分:Spring Boot的整体架构1.1

前端导出Excel文件出现乱码或文件损坏问题的解决办法

《前端导出Excel文件出现乱码或文件损坏问题的解决办法》在现代网页应用程序中,前端有时需要与后端进行数据交互,包括下载文件,:本文主要介绍前端导出Excel文件出现乱码或文件损坏问题的解决办法,... 目录1. 检查后端返回的数据格式2. 前端正确处理二进制数据方案 1:直接下载(推荐)方案 2:手动构造

MyBatis Plus大数据量查询慢原因分析及解决

《MyBatisPlus大数据量查询慢原因分析及解决》大数据量查询慢常因全表扫描、分页不当、索引缺失、内存占用高及ORM开销,优化措施包括分页查询、流式读取、SQL优化、批处理、多数据源、结果集二次... 目录大数据量查询慢的常见原因优化方案高级方案配置调优监控与诊断总结大数据量查询慢的常见原因MyBAT

k8s admin用户生成token方式

《k8sadmin用户生成token方式》用户使用Kubernetes1.28创建admin命名空间并部署,通过ClusterRoleBinding为jenkins用户授权集群级权限,生成并获取其t... 目录k8s admin用户生成token创建一个admin的命名空间查看k8s namespace 的

分析 Java Stream 的 peek使用实践与副作用处理方案

《分析JavaStream的peek使用实践与副作用处理方案》StreamAPI的peek操作是中间操作,用于观察元素但不终止流,其副作用风险包括线程安全、顺序混乱及性能问题,合理使用场景有限... 目录一、peek 操作的本质:有状态的中间操作二、副作用的定义与风险场景1. 并行流下的线程安全问题2. 顺

C#利用Free Spire.XLS for .NET复制Excel工作表

《C#利用FreeSpire.XLSfor.NET复制Excel工作表》在日常的.NET开发中,我们经常需要操作Excel文件,本文将详细介绍C#如何使用FreeSpire.XLSfor.NET... 目录1. 环境准备2. 核心功能3. android示例代码3.1 在同一工作簿内复制工作表3.2 在不同