查看原文
其他

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

Cherich_sun 杰哥的IT之旅 2022-08-11

作者: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代码)

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存