写点什么

太秀了!用 Excel 也能实现和 Python 数据分析一样的功能!

用户头像
JackTian
关注
发布于: 2021 年 02 月 26 日
太秀了!用Excel也能实现和Python数据分析一样的功能!

作者:Cherich_sun

来源:公众号「杰哥的 IT 之旅」ID:Jake_Internet


这是一篇关于如何用 excel 做数据分析的案例。目的是帮助大家,在遇到小型数据样本时,快速利用 excel 做分析。所以本篇文章的重点是分析思路+数据处理+可视化的实现,因为数据来源于网络,所以不做深入解析。

需求说明


分析某电商企业销售趋势,找到影响销售增长的因素。同时分析不同市场产品销售状况,找到不同市场的销售差异。挖掘不同产品的销售状况,找到不同产品的销售差异。对用户群体进行分析,对企业用户的画像价值进行挖掘。从上述分析中得出结论,并根据分析结果,提出自己对此企业未来发展的一些想法和建议。

数据说明


本项目数据为某电商平台全年每日订单详情数据和用户信息数据,包括两个数据表,销售订单表和用户信息表。


其中销售订单表为每个订单的情况明细,一个订单对应一次销售。这两个表的表结构分别为:


销售订单表结构:



用户信息表结构:


一、分析思路


本项目主要分为三个维度,分别是用户画像,针对用户群体进行分析,找出平台的主力军特点有哪些;商品维度上,找出商品在不同市场的销售差异等;用户价值维度上,主要根据用户的消费行为,挖掘出其内在的规律。分析的详细思路,如下:


二、数据处理(Excel)


1、数据清洗


最终数据状态:"多一分则肥,少一分则瘦",那么常用的清洗方法主要有以下三种。


① 重复数据处理


函数法 COUNTIF()

重复标记 =COUNTIF(A:A,A2)

第二次重复标记 =COUNTIF(A$2:A2,A2)

两种结果对比如下 :



高级筛选法 选中将要处理的数据区域,点击菜单栏里【数据】——【排序和筛选】里选择【高级】,会弹出高级筛选。如下操作:


条件格式 选中将要处理的数据区域,点击菜单栏里【开始】——【条件格式】里选择【突出显示单元格规则】——【重复值】。如下操作:


数据透视表 数据透视表一样能计算数据重复的频次。而且比 COUNTIF 更加简单易用,只需要拖动。首先,选中第一行标题数据左侧,按 Shift+Ctrl+End/下箭头,选中全部数据后——【插入】——【数据透视表】,如下:

我们上面已经学会了各种重复值的处理,那么在实际业务中,通常会删除重复值。选中全部数据——点击——菜单栏里【数据】——【删除重复项】,如下:


② 缺失数据处理


一般可以接受的缺失值的标准是在 10%以下。通常的处理方式如下:


  • 平均值填充;

  • 统计模型计算出来的值;

  • 将缺失值的记录删除掉;

  • 保留,只在做相应的分析中做必要的排除


批量填充 如何把下面的表格的合并单元格拆分开,转化成规范的数据。

选择要转换的区域——【开始】——【合并后居中】——即取消单元格合并——继续选中要转换的区域——按 Ctrl+G——弹出【定位】——【定位条件】,选择空值——确定——继续在 A3 单元格中输入"=",按上箭头,再按 Ctrl+Enter,自动填充完成。



注:批量去除公式:选中数据,粘贴为数值,这样会提升 excel 的整体运行效率。下面,我们需要利用批量填充,处理销售订单表中的产品名称字段,批量删除掉数值,只保留产品名。新建一列空白列,先输入几个正确的产品名称,按 Ctrl+E,快速智能填充。

查找和替换 快捷键分别是:Ctrl+F;Ctrl+H


③ 空格数据处理

  • 直接替换空格 Ctrl + H

  • 特殊空格,要用 trim()

2、数据合并


① 字段合并


  • CONCATENATE()

  • &

  • DATE()

② 字段匹配


能够实现的是表里没有的数据,但是其他表有的,通过对应的共同关键字(数据类型必须相同)进行匹配。现在,我们将用户表和订单表进行合并,使得订单表的字段更加丰富,为接下来分析(消费的主力军特征)做准备。想要实现的结果,如下:


实现方式 VLOOKUP,语法如下:


VLOOKUP(要查找的值,查找的范围,属于查找范围的第几列(序列号),模糊/精确查找) 通过上面的语法,我们能够成功的获取到性别这一列数据,但是还有几个字段,如果通过复制粘贴的形式,修改序列号的话,效率太慢了。我们有更高效的方式。如下:


如上,序列号的位置通过 COLUMN 函数定位列,记得对行加绝对引用 $。这样的话,直接向右,向下拖拽,就会自动补全字段内容。


3、数据抽取


① 字段拆分


分列 现在我们已经成功合并成了一个大表,接下来,要对付款时间进行分列,拆分成年,月形式,方便后面作可视化。首先选中【单价】列右键——【插入】——同样的方式插入三个空白列——复制一列【付款时间列】,再分别命名列名为年、月——选中【付款时间】列——【数据】——【分列】——【下一步】——【其他】输入"/"——【完成】



函数(截取字符串):LEFT();RIGHT();MID()


② 随机抽样


  • RAND():返回 0~1 之间的小数; 如果想返回 60~70 之间的,=INT(RAND()*10+60)

  • RANDBETWEEN():返回介于指定数字之间的随机数,=RANDBETWEEN(60,70)

4、数据计算


① 简单计算


② 函数计算


日期计算 求年龄函数实现方式:=DATEDIF(D2,TODAY(),"Y")


数据分组 项目的需求是根据年龄对用户打标签(小于 21 岁,标记为"00 后";大于 21 岁并且小于 31,标记为"90 后";大于 31 岁并且小于 41,标记为"80 后";大于 41 岁并且小于 51,标记为"70 后"),有下面两种实现方式。


  • 方式一:


IF() IF(W2<21,"00 后",IF(AND(W2>21,W2<31),"90 后",IF(AND(W2>31,W2<41),"80 后","70 后")))

  • 方式二:


VLOOKUP() 这种方式我们仅需要设置阈值和显示标签,值得注意的是要 VLOOKUP 的第三个参数是模糊匹配。


5、数据转换


① 数据表行列转换


实现如下效果,选中要转换的数据——右键,复制——选择空白单元格——【开始】——【粘贴】——【选择性粘贴】——选中【转置】——完成



② 二维表转为一维表


点击【文件】——【选项】——【自定义功能】——在【不在功能区中的命令】中找到【数据透视表和数据透视图向导】并选中——在右侧的【数据】选项卡下面添加【新建选项卡】并选中它——【添加】——确定,最终,在【数据】里出现了"数据透视表和数据透视图向导",如下:



点击【数据透视表和数据透视图向导】——选择【多重合并计算数据区域】——【创建单页字段】——下一步——选定将要操作的区域——下一步——选择【新工作表】——完成——双击【总计】的值——即实现二维表转为一维表,如下:



三、可视化


可视化图形大多数比较简单,相信大家都能轻而易举的实现。那么,一些特殊的图形,因为也很重要。


1、用户画像

图表说明:平台的主力军的特征主要是:女性用户;90 后人群单身人群‘’学历主要是中专、博硕;地域集中在天津地区。女生购买偏好饮料、日用品,男性购买偏好是饮料、海鲜产品。


2、产品优势

图表说明:整体的销售额处于下降趋势,从 10 月份开始慢慢回升。根据二八法则,可以看出天津、南京、北京占总销售额的 43%,可以考虑作为重点投放市场。最受欢迎的品类是饮料、日用品、肉/家禽。


3、用户价值



注:因为上面的数据集里用户量有限,做同期群后不明显。所以这里是一个新的用户数据集。


图表说明:通过 RFM 模型已经对用户做好分类,可以针对不同类型用户采取相应的运营策略;重点维护消费频率在 82~100 之间的用户。同期群分析,我们可以看出平台的新用户是逐渐递增的,但是留存率较低。


公众号:杰哥的 IT 之旅,后台回复:「20210226」,即可获取本文完整数据。


如果你觉得这篇文章对你有点用的话,就请为本文留个言,点个,或者转发一下,让更多的朋友看到,因为这将是我持续输出更多优质文章的最强动力!




发布于: 2021 年 02 月 26 日阅读数: 1682
用户头像

JackTian

关注

公众号:杰哥的IT之旅 微信:Hc220088 2018.09.21 加入

一名奋斗在一线城市的 Linux 中级运维工程师。 擅长 Linux、运维、GitHub 等方向领域; 爱好写作,听歌,喜欢交朋友,走过路过的朋友,也可以通过我的签名添加我的微信,畅聊你我之间的故事。

评论 (1 条评论)

发布
用户头像
牛皮
2021 年 02 月 28 日 11:56
回复
没有更多了
太秀了!用Excel也能实现和Python数据分析一样的功能!