百科问答小站 logo
百科问答小站 font logo



养成哪些好习惯能让 Excel 运行更快? 第1页

  

user avatar   lee-sam-60 网友的相关建议: 
      

1. Vlookup应该是新手最常遇到的速度变慢问题。一般原因是在需要反复vlookup时直接手动往下拖。这样你每搜索一次都需要把整个搜寻区域复制一遍,然后传输到另个计算模块中,哪怕每次搜索的区域都是一样的。要避免这个问题的最简的办法就是用Ctrl+Shift+ 回车快捷键,可一次性搜索多个结果。具体方法是:选中你要输出的整个区域,然后在公式栏输入 =vlookup(选中整个你要搜索的数据区域,选中整个要被搜索的区域,后面的参数和平时一样不变),然后不要按回车,而是按Ctrl + Shift + 回车。 过两天我会上图详解。

2. 动态方程。有些方程,只要你的表格任何的地方发生改变,它都会被重新算一次,被称之为动态方程。常见的有today(), offset等。如果此时你有什么复杂的计算需用到这些方程的计算结果,那些计算也会被重新算。不到万不得已千万不要用这些方程。

3. 把Excel当数据库用。大量的原始数据和中间计算结果直接存在表格里,一开始用的方便,数据量一大就是SB了。我们公司一个老交易员的Excel表格有250MB. 打开表格要1分钟。这个问题并没有什么简的解决办法。最好的作法当然是把数据储存交给专业语言如sql,但一般初学者要搞这个还是太麻烦。我的建议是当你的数据达到100MB的时候,恭喜你,你处理的工作已经开始有点复杂了,去学门专业的编程语言吧。建议的顺序是:VBA, MATLAB, SQL.

4. 计算没有调成手动。表格大,关联度复杂的时候,经常牵一发而动全身,导致修改时异常痛苦。把计算模式改成手动,这样等改完了只用算一次就行了。

5. VBA代码反复读取数据。这也是个新手常见问题,有些入门级的VBA教材还直接这样教,害人不浅。最常见的案例是,要处理一个表格,比如把每个行加起来,写VBA代码时,算完一行输出一行,再读取下一行的数据。。。一定要记住,表格与VBA之间的沟通非常非常非慢,VBA内自己的数据读取调整非常非常快,因此若干要处理一个表格,一定要先把整个表格读进去,在里面处理完了一次性输出。

6. 我的经验是,如果是需要反复使用的表格,能用VBA实现的,则尽量避开在表格内使用公式。例如,你做了一个界面,显示某个表格的第N列的数据,N由用户决定。有的人在输出区域直接写上公式。我一般是做个按钮,点完以后通过VBA把用户要的结果抄过来。这样不仅块,而且可控,不会出现公式人不小心删了之类的鬼事。 我总觉得若长期坚持用表格内公式而避开VBA容易走上邪路。我们公司有位分析师就这样,写表格内公式已经写成神了,公式动不动就要写3、4行!各种INDEX MATCH 叠在一起,看上去像天书。

7. 复杂点的数据计算还是别强求VBA了吧。用其他语言写个dll插件速度会快很多。




  

相关话题

  程序员专心工作很累, 又想健身, 你有什么科学的好方法 ? 
  现在流行的少儿编程是不是收智商税? 
  为什么不能能向方法同时传入dynamic 类型,和lambda类型的参数? 
  26 岁开始学编程晚了吗? 
  符号与数字之间空一格的风格有哪些好处? 
  如何看待华为1100亿行规模的代码库? 
  国内的老程序员最后都去哪儿了? 
  程序员行业有哪些越早知道越好的道理? 
  如何减少团队的低质量代码? 
  GitHub 或者其他的开源平台中是否有一些适合初学者的 C++ 项目? 

前一个讨论
恋爱六年以上最后还是分手是种怎样的体验?
下一个讨论
50年代的美国政治体制成熟,为何还会有会麦卡锡这样的人兴风作浪?





© 2024-09-27 - tinynew.org. All Rights Reserved.
© 2024-09-27 - tinynew.org. 保留所有权利