其实Excel和Python在近两年一直在被做对比 ,有的小伙伴现在并不需要学习,但是并不代表以后用不上,技多不压身,我们可以先分析一下,excel的vba其实是很强大,学的深的话基本可以解决大部分数据处理问题!但是excel仍然有局限性:

1.office正版要钱,python正版不要钱

2.python连接资料库并执行资料库查询比excel vba要方便的多!并且资料库内表格行数常常会超过excel处理极限。而且处理速度会很快,python代码是可以重复使用的,下次需要运行相似的分析情景时,只需运行脚本就可以了,同时你也可以把这些内容共享给你的同事们,不用在编写描述 Excel 中操作步骤手册,提高我们的工作效率

3.python使用pandas对特殊的文本数据进行定制化的解析。python对复杂逻辑的处理和对正则表达式的支持要强过vba。当然并不是vba不能实现,就是比较麻烦!

简单来说Python≥excel,excel能做到的Python都能做到,但是excel不能很强大的编程,不能进行丰富逻辑处理,复杂的运算分析

当然具体还是要看你的工作场景需求,以及以后你要发展路线上它们对你的帮助,如果真的用不到那就无所谓了,因为它们只是工具,我们更加需要加强逻辑思维和业务分析能力,找到自己的核心竞争力,工具只是辅助的东西和帮助你表达出来的东西

学习周期的话这个看个人,本身你有基础,学习起来并不会很难,工具只有多用才会更熟练


首先说结论:不一定

因为你还可以选择VBA!当然VBA你也不一定需要!

按你说的「一个Exce函数加填充就能搞定的事」,说明你对Excel的需求并不是很高,不是重度用户,可能就是日常做做表,记录一些数字。如果你跟我一样天天跟Excel打交道,天天做一些重复工作,那么你一定就不会这样想了,你会想"我都累死了,什么时候才能干完啊,有没有简单的方法啊"!举个例子,是我干过的活,如图

这是一个二维表,需要我展开成一维的,就是横坐标,纵坐标,然后取对应的值,你当然可以手动去一个个去输入,可能你眼神好,手速快,半个小时就搞定了,然后检查一遍发现错了一个数,再改改就搞定了,但是我现在手上有一百个类似这样的表,有的还是三维的,还有的需要×系数,有的一个系数,有的两个三个,遇到这样的问题你打算怎么办?还要去输入吗?反正我想想都觉得累,眼睛累,手也累。这时候你肯定会到知乎来问,有没有什么简单的方法把表格展开?那么,肯定就会有大佬推荐你VBA或者Python!我当然就是用的VBA,做完你猜有多少数据?16万行!每行最少三个数据。你可以想想手动输入要多久吗?按照你一秒钟输入一个数据来算算看,你需要16个工作日每天八小时不停歇干才行!

所以当你觉得没用或者不需要,只能说明你做的事不够多,遇到的问题不够多


如果把数据分析比作建一座高楼,那么excel就是给你一个个组件,你的工作就是把他们组装起来,就跟最近的火神山医院一样,像是搭积木

虽然这种方法可能很快就能出结果,效率很高,但是因为用的都是设计好的组件,所以你基本上只能循规蹈矩,遇到问题也不能把组件推倒重建,只能换其他的组件或者换个组合方式;

而且还不能用大数据量,因为excel的逻辑关系太弱,就跟搭积木搭高了就会倒塌一样,处理个万级数据就有点吃力了;所以excel不能用来建高楼,毕竟没有一座世界高楼,是搭积木搭起来的。

从数据分析的角度来看,excel的可视化要差一些,数据采集也不能跟python相比,这都不是excel的专业,但是excel在数理统计上的表现还是很不错的

所以当数据分析量小、想要快速出结果、逻辑关系简单的情况下,excel很香!

python就是给你一堆原材料,水泥、砖头、钢筋等等,你的工作就是自己要从头搞,一步步把高楼给建造出来

坏处嘛就是要求你什么都要会,你要会砌墙、会施工、会图纸,学习起来自然是比excel要难

从效率上讲,处理简单问题肯定要比excel差,但是在复杂问题面前,python的好处才能凸显出来

而且你拥有了这堆原材料,不仅可以建高楼,还能用来造飞机、造轮船,造火箭,所以人们都说python是万能语言,除了生孩子什么都能做

另外一点python是开源的,起码比matlab要强多了(深深执念)

从数据分析的角度看,python肯定是要优于excel的,数据采集、数据处理和数据分析、可视化方面都比excel要强,当然这只是对于数据分析来说

所以当数据量大、逻辑关系复杂的时候,python是最优解

PS:

当然了,VBA就另说了,其实我觉得VBA跟python的学习难度其实差不了太多,但就是用起来太难用,看个人具体的需求吧,具体的区别这里就不详细说了


类似的问题我写过回答也写过文章,放在下面,如果有兴趣可以去看一下。其实主要还是看你有没有遇到Excel的瓶颈,然后对于这些瓶颈你是准备用什么办法去处理。

  1. 比如说Excel不能处理过大的数据表,但是说白了,pandas也有限制,超出内存的表是不能读取的。当然了,到了那个时候,还有新的工具。
  2. 比如说Excel不能编程,所以没法抽象化用户操作。但是人家有vba呀。我没有认真学过vba,所以不好多做评论。但是一个语言好不好学,(尤其是vba和python相比,大家毕竟都是应用层面的语言),说到底还是这个语言的用户数量决定的,vba有几个包?github上有几个repo是用vba写的?你去Stack Overflow上面搜vba能搜出几个高质量答案?你有问题以后能不能尽快的找到答案?你能不能*免费*的从网上找到高质量的vba学习资料?所以说白了,具体学什么语言真的不重要,关键是要容易学。如果你现在发现vba很容易学容易用,那完全没有必要去学python
  3. 比如说Excel有太多的黑箱,太多自动化的工具,而且最关键的,它是图形化操作界面。你会觉得这些都是好处呀?为什么要作为瓶颈呢?确实,这些都是好处,但是图形界面也是双刃剑。图形界面是很难抽象化的,你很难将用户操作转化成一个按钮,一个对话框。所以如果你想自由,你必须放弃图形界面。这是很矛盾的一个事情,这很可能也只是千禧年以前长大的人的无聊的坚持,但是说回来,到了2020年我也没觉得这个看法有什么大错。

所以说到底,如果你现在觉得Excel足够解决你现在的问题,你自然没有必要提前去学。但是很多时候真的是这样么?你就没有一些自己想做,但是不知道怎么用Excel去做的东西?如果别人告诉你,用vba可以这样这样这样这样解决,那你就可以去学python了

关于学了多久,应该说是一年吧。18年底的时候我做科研成果总结,当时用的是excel,到了去年年底的时候做课程表处理的时候就主要依靠pandas了,但是怎么说呢,我在18年以前的时候也已经学过一段时间pandas了,而13年的时候我也用js连抄带编的做了一个杂志的光碟导航系统,所以学编程这个事情不是一下子就能做好的,但是一直学肯定会越学越好


附上两个之前的回答:

如何才能成为EXCEL数据处理大神??

www.zhihu.com图标路人乙小明:[Excel]如果你爱Excel,请学好pandas?

zhuanlan.zhihu.com图标

我觉得一切要以工作目的为导向,以解决问题为导向。

凡是能尽快协助你高效处理工作任务的,你都要去学习和了解,但是不必精通,除非你想转行(敲重点)

我学生时代用Python做爬虫,画图,辅助做Excel,觉得逼格很高,工作了以后发现我这行Excel和vba已经能实现逆天操作了,再花时间去精通Python反而本末倒置。如果你觉得Python有确实帮到你的地方,再用Python也可以,但是你多动动手会发现网上有现成的辅助工作的小程序,没必要亲自操刀设计。

你的价值是你的专业能力,行业经验,沟通协调能力,资源整合能力。你未来几十年的成长也都是在这些方面。多花时间钻研「术」并不会为你带来多大成就(除非你想转行),让专业的人去做专业的事,让每个人都当好社会运转的螺丝钉,这才是主流。


推荐阅读:
相关文章