15000条数据,VBA不至于卡死吧?多拆几张表,我以前处理实验数据,比你这个大多了,VBA可以自动记录你的数据处理过程,然后回放,功能很好用。
15000行的数据就会卡??我选择换电脑了。。
这个选那个语言当然要考虑技术了,技术好啥都可以用。只是为了处理excel数据当然用vba,去学python太大才小用了,当然本身就会python就当我没说~
没用过vba,听说性能不太好处理excel数据,我用Python,处理百万行数据,没有问题,但如果在计算逻辑比较复杂的话,可能运行起来稍微慢一旦,但绝对不卡。
肯定是python了,模块多,而且经过,也是主流语言,遇到问题也更容易找到答案。
用Python吧,更加主流了解了以后还可以更进一步学习Python
简单就vba对付一下,复杂或者数据读写量大,还是python吧,不然会让你怀疑人生
看用途选语言。根据实际需要。从红楼梦中统计出主角名字出现次数,以柱状图显示,把凤姐,和王熙凤都统计为王熙凤。这就需要用python20行简单代码搞定。如果,以A列排序,python也可以做,就不如用excel排序功能快捷。根据实际需要出发
个人认为提高数据处理速度的优化方案应该按照下面的方案逐步选择:
1、优化算法
这个是重中之重,不管你选择什么语言处理数据,一段糟糕的代码总是很难有执行效率。
2、使用内存数组处理
您可以对比一下面两段代码的执行效率
SubrunOne()
Dimarr(1To15000,1To1)AsLong
Fori=1To15000
arr(i,1)=i
Next
Range(A1:A15000)=arr
EndSub
SubrunTwo()
Fori=1To15000
Cells(i,2)=i
Next
EndSub
3、使用一些VBA的优化技巧
譬如关闭屏幕刷新Application.ScreenUpdating=False(切记要再代码结束后恢复),等优化手段。
4、最后考虑更换语言
如果上述都无法满足您的要求,再变更处理语言,但要注意尽量不要再采用Com组件的方式读写Excel,不然效率依旧。可以选择类似.Net中的NPOI等,直接读写文件的库来处理,效率会倍增。
这要看你的需求了,如果仅仅是操作EXCEL的话,VBA应该说操作方便简单,还内嵌不需要搭载什么东西,能实现的功能也比较全。
但是如果不光是操作EXCEL的话,数据还要分享到其他地方,那肯定是Pythen要功能更强大。
至于VBA运行15000行卡死,我觉得不会,运行时间长是正常的,我做过几万行的表,没说会卡死,只是假死,你可以活动光标,这样就不会感觉卡死了。运行效率的话肯定没有Pythen高。
关键还是自己选择。
vba更适合EXCEL,毕竟是内嵌的。
你好,慢的原因是因为数据量有点大,python是个不错的选择,但是要效率的话,需要讲究方法,我们可以使用分而治之的方法如下步骤:
1,将15000条数据拆分成10个1500条
2.python启动10个线程去处理这10个数据文件
3.如果效率还慢的话,可以再进行拆分,原理类似
祝你好运
不取决于选择啥,取决于你会啥,啥有现成Do
当然用Office系列软件中自带的vba好些。
只要编程,就别上微软的贼船。
作为一个从会计转行到程序员的人,Python、VBA都用过,目前工作上用得最多的是C#。
我可以明确告诉你处理Excel数据的话,VBA是首先。Python虽然也可以通过各种包去控制Excel,但是功能待完善,使用起来没有某些机构说的那么惊艳的。
再说一下VBA效率的事情,其实是可以优化的,告诉你一个线索,用二维数组可以极大的提升数据处理效率。
推荐python
首先,我们先说说Excel主要优点:
1)数据透视功能,一个数据透视表演变出10几种报表,只需吹灰之力。易用性,一个新手,只要认真使用向导1-2小时就可以马马虎虎上路。
2)统计分析,其实包含在数据透视功能之中,但是非常独特,常用的检验方式一键搞定。
3)图表功能,这几乎是Excel的独门技能,其他程序只能望其项背而自杀。
4)高级筛选,这是Excel提供的高级查询功能,而操作之简单。
5)自动汇总功能,这个功能其他程序都有,但是Excel简便灵活。
6)高级数学计算,却只要一两个函数轻松搞定。
其实,上面的内容有些废话,但是为了文章的完整性还是写上了,不过要想真正精通Excel,最高端就是用VBA语言自己写宏,但是VBA作为一种编程语言也是十分难学,如果不写VBA就需要一个一个的把数据录入,然后一行行公式计算,最后再绘制图表。不仅如此,由于Excel都是手动录入,所以要反复检查有没有错误,往往会耗费不少的时间。因此,Python就派上了用场。
批量出图
除了整理数据,Python的批量出图功能也很强大。
用Excel出图需要不停的用鼠标操作,而且非常容易出错。
而用Python,只需要几行代码轻松解决,特别是当工作重复度很高的时候,只要略微改动代码即可,大大的节省了时间,提高了完成效率。
数据可视化
Python还可以自动生成数据可视图。
利用Python强大的绘图功能,数据导入-分析-出结果
绘图这个过程可以一次性完成,数据结果非常清晰直观。
您好,很高兴在这里交流。
首先,VBA与Python都是可以对Excel进行编程控制的。
在当下,学习Python相对于VBA,应用场景会更广阔一些,很容易扩展到机器学习,图像处理,数据可视化,时间序列,数据分析等应用当中。
对于Python处理Excel数据,不得不提典型的数据处理库pandas.
其中的方法涉及到,多表拼接,合并,透视表,可视化图表,以及对大数据量的处理(千万级)。
具体可参考以下案例:
①多表拼接实现1000万条数据记录汇总
i6809389077578646028/
②Python处理时间序列常用方法汇总
i6808906735865037319/
③Python绘制与金融相关的图形
i6813731029791015432/
④利用Python批量创建文件/文件夹
i6815322095312962055/
⑤Python批量修改文件名
i6815834857394930187/
⑥matplotlib-绘制精美的图表
i6816914689075708419/
一切顺利,加油!
拿Python和vba相比,回答这个问题得先了解操作人的一个实际情况,如果对python非常擅长,那肯定是python,如果不会python对vba熟悉那肯定是vba,python和vba就好比一个工具,就看作者对哪个更熟练。
相比Python和vba,如果是打算深入学习,如果不是专业的开发人员,人事、财务或经常使用表格办公的人,我作为一个会计专业的过来人,还是强烈建议学VBA,因为这个非常容易入门。
简单介绍一下我的学习过程:
我是会计,工作中经常用到Excel,每天都需要处理各种表格,一开始是买了本Excel函数的书反复翻读了好几遍,算是对函数非常熟练了,工作效率也提高了,非常有成就感,后面发现工作量还是很大,表格越来越多,大部分工作都非常机械化,开始接触vba,又买了本vba学习的书,试着写了一些宏,后面每一类表格我点击一下按钮就完成了,效率又提了一大步,再后面数据量越来越大,甚至有些数据表格都不能全部打开,开始接触数据库sqlserver,于是又买了一本学习sql语法的书,数据库非常适合大量数据的处理分析,一段sql脚本执行后马上就出结果。又过了一些时间,自己慢慢接触c#,python,nodejs开发一些日常用的工作软件使用,后面直接就转到开发岗位了。
其实对于非计算机专业的办公人员,如果使用Excel非常多,我还是建议学习一下VBA,VBA是VB的一个分支,语法简单,方便调试,F8单步执行,实时看到效果,非常适合新手学习。
最近在分享VB方面的东西,看到这么多回答,也来凑个热闹:
1、Python通过COM接口与Excel交互,到Excel进程中已经是现成的二进制机器指令了。而VBA还是解释执行,编译对解释,比较也不公平吧。要比较,用VB封装成同样的COM加载项,再来比较。
2、即便是VBA的逐行解释执行,区区15000行数据,怎么会卡?不说以前只有2^16行,就是现在2^20行,也没卡过。如果卡,多半是Excel默认了自动重算,而使用者又没有指定重算范围,人家在老老实实的全部重算呢。
3、数据量大了,为啥还在Excel中处理?几百上千万行数据,在Access中与Excel自动交互,都在秒内,甚至都不需要写代码。
4、Excel还自带数据库功能呢,那也是秒内级的工具。
5、嫌弃VB系过时的,还有VSTO跟着,人家还没发话呢。
6、VBA可不只是处理数据的,它无需造轮子,就可以触达系统的方方面面。
关于这一争论,可参阅《Python取代VBA?先问C#答应否》,希望能有所帮助!
首先说明一下,卡死是算法的问题或者设备硬件运算能力的问题,和语言本身无关.
Python是一个热门的语言,
有一定的难度,从懂会精层次来讲,难了一些,需要你有更多的库.但是一旦学会了,它会给你带来其他更多的惊喜.
VBA是个小众语言,
工作中需要使用到Office,WPS的,却又基本每天都要用到.他是Office自带的,对于关注要处理的问题本身,将语言只做为了个解决问题的工具,我认为VBA更贴近,难度也低些.
如果你对工具的了解还是初级的,Bug是必然的,VBA可以更好的让你去发现问题并进行调试.
如果你需要将标准化了的工作指派给他人做,VBA可以随时简便的转移到其它电脑上.Python需要环境配置,或都打包成程序,还是强调的实施的难.
总结:
专业性数据分析岗位:选Python没错,会给你更多第三方的库,丰富你要表达的讯息,辅助你的结论的合理性.
常规办公岗位:选VBA可行性更高,容易上手,用完放下,再用拿起,随时随地.