python依据时间条件提取excel表行数据_手把手教你用 Excel 实现同期群分析

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 15:46   72   0

本文目录

  • 前言
  • 数据清洗:删除订单状态为“交易失败”的行
  • 计算首单时间
  • 计算首单时间与付款时间差:求出月份差,并对首单付款时间降采样
  • 利用透视表计算同期群留存量和留存率::通过首单时间和月份差进行分组,求唯一的用户id数

前言

为什么最后才写Excel呢,实际中,计算同期群,可能数据量会非常大,大多数情况下,Excel很难应付下来。

数据字段、同期群含义、数据概览等细节,请参照前面几篇文章:

Dima:手把手教你用 Python 实现同期群分析(1)zhuanlan.zhihu.com
Dima:手把手教你用 Python 实现同期群分析(2)zhuanlan.zhihu.com
Dima:手把手教你用 SQL 实现同期群分析zhuanlan.zhihu.com

本文我们依旧选择最经典,也是数分面试中最常考的留存率作为例子。

a7c1395fea0bc57e641323e7d2f7d2b8.png
本文,采用第一种方法实现!

本文所涉及的完整实战数据和建模过程等,详见百度云网盘链接:

链接:https://pan.baidu.com/s/1_CTwkdzFbXNH9iZPoYm2bw

提取码:maz8

2c8d9c7a55a9c954ad03b459da7c4df6.png
本文涉及到的数据源

ed1e6fd2e86e1f5645144a7c303a1e06.png
清洗后的数据建模全流程

本文使用 Excel 2016 版实现。低版本的 office 和 wps的数据透视表,不支持非重复计数!

Ps:本文重工具实现,分析的思路及结论暂不涉及!

一、数据清洗

只需要 筛选 + 删除。筛选出订单状态为“交易失败”的行,再将其删除,数据清洗即可完成。操作极其简单,不赘述!

二、计算首单时间

1、创建透视表

将清洗后的数据,建立透视表。具体步骤为:

【Ctrl+A 全选数据】-【插入】-【数据透视表】-【确定】。

bea7b825b8b7791cd76372495aa36cbe.png

2、选择分组字段和值字段

将“客户昵称”拖进【行】,将“付款时间”拖进【值】,并将值字段设置中的汇总方式设置为【最小值】。

8e42ccd2cb2aa8e2af7761f73215413c.png

再修改【最小值:付款时间】的格式:

51b9c9dbe47cc3824026f6204e6db773.png
本小节最终结果

3、将首单时间拼接到每个用户所在行

使用 VLOOPUP 函数;具体语法为:=VLOOKUP(查找的依据,查找的区域,返回的值在查找区域中的列号,是否近似匹配)。

Ps:公式所有括号及逗号,均为英文状态下!此处仅仅是为了排版方便,使用的中文书写!

82e764309ad2c7ac8f125eef77e80ea9.png
注意要绝对引用!

8a1212831c7235c711fc5bc6fd3cd804.png

687d49470978e3e7c670c4ae80572cf9.png
记得再次修改成日期格式!

三、计算时间差

1、对付款时间和首单时间进行重采样(处理成年月格式)

efe974d93cfe3b047515789b599b6015.png

2、计算首单时间与付款时间差(月份差)

此步骤中需要用到DATEDIF函数,此公式常用于计算两个日期之间的天数、月份、年数差。

语法为:=DATEDIF(起始时间,结束时间,时间频率),常用的时间频率参数有['Y','M','D'],分别对应年月日

a04c494497e15be08de51cdccce15ef5.png
为了截屏方便,隐藏部分不重要的字段

3、重置月份差标签

修改透视表的标签并不方便,因此先重置月份差标签,需要用到一个IF函数便可。

具体语法:=IF(条件,为真的操作,为假的操作)

f2fc333e0f5814ca12952f3156ff3f15.png

四、计算同期留存量和留存率

1、创建留存量数据透视表

具体步骤为:【Ctrl+A 全选数据】-【插入】-【数据透视表】-【将此数据添加到数据模型】-【确定】。

9b68da7e889f391fba230cba96b00df9.png

以“首单时间重采样”作为【行】,以“月份差标签”作为【列】,以直接以“客户昵称”作为【值】,并在值字段设置当中,将计算类型设置为【非重复计数】。

b2ac31bd1e4e1efb245b253ba77ae352.png

得到以下结果,再继续美化处理一下:

25dd1f7a8cc55a0a4835590f4662dc82.png
透视后得到的原始数据

2、计算留存率

最后,将数据复制到空白处,手动处理一下顺序,即可得到我们想要的留存量及留存率!

dfd32aacd3318aa2ee9e5b403dc0af6e.png

最后的最后,总结一下,本文涉及到的Excel重要知识点:

  • 数据透视表
  • VLOOKUP函数
  • 时间重采样函数:YEAR、MONTH
  • 时间差函数:DATEDIF
  • 条件函数:IF
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP