Excel 做数据分析的好与不好

日常工作中,涉及到数据的计算分析,Excel 一定是使用最多的。但是也有不少小伙伴困惑于 Excel 的深入学习难度大,复杂问题不好做,相同问题重复烦,大数据跑不了等问题。这里我们就来聊一聊 Excel 做数据分的好与不好,以及如何解决。

先来看 Excel 的优点。

1. 简单易学,容易上手。

首先 Excel 里有很多功能菜单,用户仅通过点击鼠标就能完成很多工作,简单到几乎每个人都能够使用它来进行基本的数据处理和分析。比如按班级数学成绩从高到底排序,直接点击对应的菜单功能就能实现。

其次 Excel 里的公式,写起来很直观,可以直接引用单元格的内容进行计算。比如计算每个同学的总分,直接在 F 列将对应单元格相加即可。这和我们做算术题的思维方式一致,很容易上手。

2. 交互性强,可实时获得计算结果

Excel 之所以应用广泛,除了使用门槛低外,还有其强大的交互功能。在 Excel 里每一步的计算结果,可直接获得。比如某订单数据,按照 SELLERID 统计每名销售员的销售总额

用数据透视表操作后,可以直接看到分类汇总后的结果,所见即所得。这对于数据分析师来说非常重要,很多时候我们要根据上一步的计算的结果来决定下一步再计算什么。

正是这两大优点,使得 Excel 成为了使用最广泛的工具。但是随着数据的爆炸式增长,业务需求变得更加复杂,Excel 的缺点也逐渐暴露出来。

1. 分析过程不好复现

首先数据分析不是单步骤就能完成的,往往需要多步骤的连续计算才能实现,而 Excel 很多操作都是通过鼠标点击实现,虽然用户体验不错,但是无法记录分析过程。在面对新的数据时,需要重复的劳动。

举个简单的例子,有两份数据。

订单数据表记录了近几年的销售订单信息。

员工信息表记录了所有员工的基本信息。

我们要找出 40 岁以下的女性销售员,并统计它们当年的平均销售额。

这个题目并不难,我们大概可以通过以下几个步骤来实现:

(1) 用函数 YEAR()提取出订单数据中年份信息

(2) 用数据透视表汇总每位销售人员的年销售额

(3) 将数据透视表的格式调整成方便下一步计算的样式,大约用 3 到 4 步的鼠标操作

(4) 将数据透视表的数据复制出来

(5) 用 VLOOKUP 函数将两表关联

(6) 在关联后的表格上筛选出 40 岁以下女性销售员的当年销售数据

(7) 将筛选后的数据复制出来

(8) 求平均值

用 Excel 操作下来,虽然用户体验很好,可以实时获得每一步的计算结果,但是操作过程却无法被记录,流程的每个步骤在 Excel 里是孤立的,并且还会产生一些中间数据。比如本题操作完后,Excel 里会产生多个 sheet 页(如下图),很容易就混乱了。如果某个条件或步骤需要修改,就只能一个一个去看。当数据源有更新时,也难以复现操作流程,只能重新去做,费时费力。

在数据分析项目中,我们遇到的问题往往比这个要复杂的多。对于复杂的项目,即使熟练的 Excel 用户也不敢轻易重现,更难保证每次需求相同,而结果一定准确了。也不要说每月甚至每周更新一次数据了,加班也干不完。

2. 复杂问题实现繁琐

Excel 终究是一个电子表格软件,很多功能都是为追求一个可视性高的表格而服务的,因此计算能力有限。在面对复杂一点的问题,实现难度会增加或操作会很繁琐。比如前面关联两表的例子,在 Excel 里并没有专门做关联的函数,一般都会用 VLOOLUP 来做,VLOOKUP 其实是个查找函数,一次只能返回一个列值,如果要返回多列,公式就要写多遍。如果要实现根据列名返回对应值,就要配合位置查找的函数才能实现,写公式的难度明显增大。如果是多条件的关联(比如根据姓名和区域)VLOOPUP 也不能直接实现,要想别的办法。仅仅一个关联问题,需求稍微变一下就要变更一下方法,本质原因就是 Excel 的函数计算功能弱。看似什么事情都能做,但是又都做的不好,很多问题都需要绕道而行。遇到复杂的业务问题就更难了,比如找出连续 3 年进入省销售前 3 的人员名单,统计每 7 天中连续三天活跃的用户数,计算每天新用户的次日留存率......

3. 面对大数据有点苦恼

Excel 只能支持 100 万行以内的数据。

当数据量大于 10 万时,Excel 计算就会很卡,甚至闪退。

随着数据分析需求的越来越高,越来越多的人转向编程语言来寻求帮助。确实编程语言可以非常有效的解决 Excel 的短板。它可以记录整个分析过程,实现自动化办公,避免重复劳动;编程语言的计算能里也更强,能够应对复杂问题,也支持大数据的运算。但是可惜的是大部分编程语言在解决 Excel 缺点的同时,也丧失了 Excel 的两大优点,容易上手和交互性强。

程序语言的用户习惯与思维方式和 Excel 是两种不同的体系,对于普通用户来说,编程门槛太高。想自学编程的人太多太多,但成功率有多少,估计 10% 都不到。其次程序语言的发明也不是为了做数据分析计算用的,缺乏交互性。而交互性,几乎可以说是数据分析的刚需。数据分析师需要知道每一步的计算结果是什么,才好决定下一步怎么计算。

那么有没有编程语言能够解决 Excel 的短板的同时,又能继承 Excel 的优点呢。

有,SPL。

SPL 是专门针对结构化数据计算而发明的一个编程语言,编程语言的计算优势它都有,而且更强。同时交互性也不错,很适合做数据分析。

1. 交互性强,对 Excel 用户特别友好

SPL 的操作方式也是在格子里进行,和 Excel 看起很像。

它可以像 Excel 一样引用单元格的内容来写公式代码。比如 A2 和 A3 的代码不用解释都能看懂,不同的是 Excel 的结果是会显示在写公式的单元格,SPL 的结果则是显示在界面右边,点击哪个格子就能看到哪个格子的结果。这样的好处就是,在可以记录计算过程的同时,又保留了很好的交互性。分析师们可以边看边写,用起来得心应手。

作为编程语言,SPL 的格值比 Excel 要更丰富,除了可以是单值外,还可以是一组值如 [3,5,7,8],也可以是一个表,比如前面班级成绩单的例子,如下图,A1 的结果就是一张表,SPL 里叫做序表。A1 代码的意思是将数据读入到 SPL。

接下来,按照数学成绩从高到低排列,并计算总分。在 SPL 里写出来是这样的:

写法简单直观,一看就懂。右边实时查看结算结果,出现错误可以及时修改。

SPL 在用户体验上极大程度的尊重了 Excel 用户的使用习惯,降低了普通人的编程门槛。

2. 可记录分析过程,随时复现

销售数据找 40 岁以下的女性销售员并求平均值的例子,Excel 需要多步操作,过程混乱,不好复现。

作为程序语言,SPL 可以记录操作过程。数据有更新时,只需替换数据源即可,无需重复劳动。条件更改时,修改起来也很容易。

3. 复杂问题,轻松应对

编程语言最大优点就是拥有更强大的计算能力。SPL 也不例外,很多复杂或繁琐的 Excel 问题在 SPL 里都不是事儿。比如前面提到用 VLOOLUP 做关联的问题,销售例子中,关联两表,写出来是这样的。

=VLOOKUP(A2,employee.xlsx!A1:I501,MATCH(D1,employee.xlsx!A1:I1,0))

要用两个函数配合才能实现,并且还要考虑参数是否锁行或锁列,逻辑上复杂,而且容易出错。

SPL 有专门的关联函数,直接写列名即可。将 B1 的 NAME, GENDER 等字段,按照 ID 号关联到 A2 上。

=A2.join(SELLERID,B1:EID,NAME,GENDER,STATE,BIRTHDAY)

SPL 里有丰富的计算函数,各种复杂的业务难题都能轻松应对。更多的 Excel 难题解法,官网上也有各种资料参考SPL 桌面分析,查起来很方便,这里不再一一举例。

4. 大数据处理流畅

Excel 在面对 10 万以上的数据量时就会很卡,SPL 不存在这个问题,10 万、百万的数据都能跑的很顺畅,还提供简易的游标运算,可以用流式读取数据,这样无论多大的数据量都能处理了。

SPL已开源免费,欢迎前往乾学院了解更多!

源码地址

免费下载

相关推荐
开开心心_Every1 天前
扫描软件,部分文档文字表格识别功能可免费
运维·服务器·pdf·电脑·excel·3dsmax·houdini
Mr数据杨1 天前
成人收入预测建模与信用评估应用
大数据·人工智能·机器学习·数据分析·kaggle
qyr67891 天前
全球多旋翼无人机动力系统市场分析报告
大数据·人工智能·数据分析·市场报告·多旋翼无人机动力系统
YangYang9YangYan1 天前
2026金融行业学数据分析的价值分析
金融·数据挖掘·数据分析
星越华夏1 天前
Pandas实现excel的IF函数功能
excel·pandas
Mr数据杨1 天前
结构化表格分类建模与业务预测落地路径
人工智能·机器学习·分类·数据挖掘·数据分析·kaggle
Mr数据杨2 天前
Unlearnable CIFAR 10 图像分类实战 从异常训练数据到鲁棒建模
人工智能·机器学习·分类·数据挖掘·数据分析·kaggle
Mr数据杨2 天前
短文本意图分类助力智能客服自动化服务
机器学习·分类·数据挖掘·数据分析·自动化·kaggle
Mr数据杨2 天前
医学影像分类实战复盘 从课程赛题到可落地建模流程
人工智能·机器学习·分类·数据挖掘·数据分析·kaggle
Captain_Data2 天前
SQL优化实战:如何让查询速度提升10倍
数据库·sql·mysql·性能优化·数据分析