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

杰哥的IT之旅

共 4108字,需浏览 9分钟

 ·

2021-02-28 19:03

作者: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之间的用户。同期群分析,我们可以看出平台的新用户是逐渐递增的,但是留存率较低。

公众号后台回复:「20210226」,即可获取本文完整数据。

推荐阅读

利用 Python 分析了某化妆品企业的销售情况,我得出的结论是?

我用 Python 分析了一波热卖年货,原来大家都在买这些东西?

利用 Python 进行多 Sheet 表合并、多工作簿合并、一表按列拆分

Python 自动化办公之"你还在手动操作“文件”或“文件夹”吗?"

看了这个总结,其实 Matplotlib 可视化,也没那么难!

数据分析之AB testing实战(附Python代码)

浏览 44
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报