我的excel里大量使用了上面这种数组公式,excel特别慢,怎么能加快速度了。 比如用其他公式代替。。。。
Excel文件太大的话,肯定会导致运行缓慢,但是可以使用以下方法提高和改善:
一、 首先要合理设计数据的布局,这是计算效率得到保障的前提
由于Excel引用访问本工作表、不同工作簿或工作表数据的速度是有区别的,通常计算指向其他工作表的引用比计算工作表内的引用速度要慢。当数据计算量较大时,就必须考虑数据的整体布局:数据是分工作簿保存、分工作表保存,还是保存在同一工作表。
基于整体性原则,如果是清单型数据表格,可能的话,尽量将数据整合同一工作表,至少尽量在同一工作簿。如果不能整合在同一工作簿,宁愿使用少量的大型工作簿,也不要使用数量较多的小型工作簿。尽可能地避免工作簿间的链接,对外部工作簿进行链接,既影响表格的打开速度,并且当工作簿移动或删除时,还容易出现断链,不易于查找和修复。
二、不可避免引用其他工作簿时的提速技巧
对关闭的工作簿尽量使用简单的直接单元格引用。这样做可以避免在重新计算任何工作簿时重新计算所有链接的工作簿。
如果不能避免使用链接的工作簿,最好将它们全部打开而不是关闭,并且表格打开顺序也有讲究,要首先打开要链接到的工作簿,然后再打开包含链接的工作簿。一般来说,从打开的工作簿比从关闭的工作簿中读取链接的速度要快。
进一步提速的“断舍离”大法:
断:数据量大的表格,应将已经计算出结果且不会再更新的单元格的公式计算结果采用选择性粘贴方式转化为数值,以减少计算量;
舍:尽量不要大范围使用计算量大的功能或公式。比如:尽管条件格式和数据有效性的功能非常强大,数组公式运算功能也非常强大,但是,大量使用它们会明显降低计算速度,除非你愿意忍受蜗牛般的运算速度,否则,不要大范围使用数据有效性、条件格式和数组公式;
离:如果某张工作表需要进行大量运算,且其他工作表对它的引用较少,可考虑将其移出本工作簿。以免每次重新计算时,影响工作簿的整体计算速度。
三、 原始数据要规范
原始数据一定的规范,否则,还要使用函数公式清洗不规范的数据,徒增中间环节,影响计算速度。比如数据的来源不是手工输入,而是从其他系统导出,导出的数据可能并不规范,比如数字是文本格式、数字后有空格、不可见字符,这些数据就没法直接参与运算,如果不手工整理成规范数据,还得用函数公式进行规避,这就大大影响计算速度。
四、 要关注公式函数的计算效率,尽量使用效率高的函数,或使用其他功能代替。
1. 非必要的情况下,不使用可变函数(易失性函数)。
Excel的可变函数有:RAND、NOW、TODAY、OFFSET、CELL、INDIRECT和 INFO。可变函数有个特点,当数值发生变化时,每次都要重新计算,因而会影响表格的计算性能。
比如,我们常用的下面的公式来定义动态区域:
=OFFSET(Sheet1!$A$1,0,0,COUNTA(Sheet1!$A:$A),1)
它的好处是:会自动扩展以包含新条目,但表格的计算性能会降低,这是因为 OFFSET 是可变函数,并且由于 OFFSET 中的 COUNTA 函数必须检查很多行,计算效率较低。
一般情况下,我们可以使用Excel的表格功能来代替动态区域(Excel 2003中称为列表)。
2. 使用其他行和列计算并存储中间结果一次,以便在其他公式中重复使用它们。并且,如前所述,尽可能引用其他单元格已有的计算结果,这样可提高运算效率。
11.png (13.93 KB, 下载次数: 4)
下载附件 保存到相册
2015-1-24 22:57 上传
在C2单元格输入公式:
=SUM($A$2:$A2)
然后向下填充公式到 C2000。如上图。B列的公式是上一累加结果加上本行数字。B列的公式是引用了上一行单元格的计算结果,B列公式比C列公式单元格引用总数减少了 500 倍,计算量大大减少。
3. 减少每个公式中的引用数,最大程度地减少函数中的引用单元格范围。
尽管在 Excel 2007以后的版本中,数组公式可以处理整列引用,但是这会强制计算列中的所有单元格,包括空单元格。这样会使表格计算起来很缓慢。
4. 尽可能使用最有效的函数(一般情况下自定义函数慢于 Excel 中的内置函数),编制适当的公式,尽可能减少公式的计算次数
=IF(ISERROR(VLOOKUP("龙逸凡",$A$2:$C$1000,3,0)),"查无此人",VLOOKUP("龙逸凡",$A$2:$C$1000,3,0))
如果表格A2:A1000中有“龙逸凡”, 使用上面这个公式,则 Excel 要运算VLOOKUP函数两次。Excel 2007以后的版本中,可以使用 IFERROR 来减少运算的次数:
=IFERROR(VLOOKUP("龙逸凡",$A$2:$C$1000,3,0)," 查无此人")
五、 非必要的情况下不使用会触发重新计算的操作
以下操作会触发重新计算:
1. 在自动模式下单:击行或列分隔符。
2. 在工作表中插入或删除行、列或单元格。
3. 添加、更改或删除已定义名称。
4. 在自动模式下重命名工作表或更改工作表位置。
5. 在表格中使用筛选、隐藏或取消隐藏行。
6. 在自动模式下打开工作簿。如果工作簿上次由不同版本的 Excel 计算,则打开工作簿通常导致完整计算。
7. 选中了“保存前自动重算”选项的情况下在手动模式下保存工作簿。
六、 可能的情况下先对数据进行排序,再使用查找引用。尽可能避免对未排序数据执行查找,因为速度很慢。
1. 如果使用完全匹配选项,则函数的计算时间与找到匹配项之前扫描的单元格数成比例。对于在较大区域内执行的查找,此时间可能非常长。对排序数据使用 VLOOKUP、HLOOKUP 和MATCH 的近似匹配选项的查找时间很短,并且不会根据所查找的区域长度显著增加。
2. 因为完全匹配查找可能很慢,所以应该考虑使用以下可以提高性能的方法:
Ø 使用一张工作表。使查找和数据位于同一工作表中运行速度更快。
Ø 如果可以,请首先对数据进行排序,并使用近似匹配。
Ø 如果必须使用完全匹配查找,请将要扫描的单元格区域限制在最小范围内。使用动态区域名称或表格(列表)功能,而不是引用大量行或列。
七、 做到了前面四点,表格的运算速度还是很慢时,将Excel的计算模式改为手动计算,在需要时再重新计算。
在手动计算模式下,可以通过按 【F9】触发智能重新计算。使用【Shift+F9】 仅重新计算所选工作表,按【Ctrl+Alt+F9】强制对所有公式执行完整计算,也可以通过按【Ctrl+Shift+ Alt+F9】 强制彻底重新构建依赖项和执行完整计算。
F9计算所有打开的工作簿中的所有工作表。
按 Shift+F9 可计算活动工作表。
按 Ctrl+Alt+F9 可计算所有打开的工作簿中的所有工作表,不管它们自上次计算以来是否已更改。
如果按Ctrl+Alt+Shift+F9,则会重新检查相关公式,然后计算所有打开的工作簿中的所有单元格,其中包括未标记为需要计算的单元格。
Excel文件太大的话,肯定会导致运行缓慢,但是可以使用以下方法提高和改善:
一、 首先要合理设计数据的布局,这是计算效率得到保障的前提
由于Excel引用访问本工作表、不同工作簿或工作表数据的速度是有区别的,通常计算指向其他工作表的引用比计算工作表内的引用速度要慢。当数据计算量较大时,就必须考虑数据的整体布局:数据是分工作簿保存、分工作表保存,还是保存在同一工作表。
基于整体性原则,如果是清单型数据表格,可能的话,尽量将数据整合同一工作表,至少尽量在同一工作簿。如果不能整合在同一工作簿,宁愿使用少量的大型工作簿,也不要使用数量较多的小型工作簿。尽可能地避免工作簿间的链接,对外部工作簿进行链接,既影响表格的打开速度,并且当工作簿移动或删除时,还容易出现断链,不易于查找和修复。
二、不可避免引用其他工作簿时的提速技巧
对关闭的工作簿尽量使用简单的直接单元格引用。这样做可以避免在重新计算任何工作簿时重新计算所有链接的工作簿。
如果不能避免使用链接的工作簿,最好将它们全部打开而不是关闭,并且表格打开顺序也有讲究,要首先打开要链接到的工作簿,然后再打开包含链接的工作簿。一般来说,从打开的工作簿比从关闭的工作簿中读取链接的速度要快。
进一步提速的“断舍离”大法:
断:数据量大的表格,应将已经计算出结果且不会再更新的单元格的公式计算结果采用选择性粘贴方式转化为数值,以减少计算量;
舍:尽量不要大范围使用计算量大的功能或公式。比如:尽管条件格式和数据有效性的功能非常强大,数组公式运算功能也非常强大,但是,大量使用它们会明显降低计算速度,除非你愿意忍受蜗牛般的运算速度,否则,不要大范围使用数据有效性、条件格式和数组公式;
离:如果某张工作表需要进行大量运算,且其他工作表对它的引用较少,可考虑将其移出本工作簿。以免每次重新计算时,影响工作簿的整体计算速度。
三、 原始数据要规范
原始数据一定的规范,否则,还要使用函数公式清洗不规范的数据,徒增中间环节,影响计算速度。比如数据的来源不是手工输入,而是从其他系统导出,导出的数据可能并不规范,比如数字是文本格式、数字后有空格、不可见字符,这些数据就没法直接参与运算,如果不手工整理成规范数据,还得用函数公式进行规避,这就大大影响计算速度。
四、 要关注公式函数的计算效率,尽量使用效率高的函数,或使用其他功能代替。
1. 非必要的情况下,不使用可变函数(易失性函数)。
Excel的可变函数有:RAND、NOW、TODAY、OFFSET、CELL、INDIRECT和 INFO。可变函数有个特点,当数值发生变化时,每次都要重新计算,因而会影响表格的计算性能。
比如,我们常用的下面的公式来定义动态区域:
=OFFSET(Sheet1!$A$1,0,0,COUNTA(Sheet1!$A:$A),1)
它的好处是:会自动扩展以包含新条目,但表格的计算性能会降低,这是因为 OFFSET 是可变函数,并且由于 OFFSET 中的 COUNTA 函数必须检查很多行,计算效率较低。
一般情况下,我们可以使用Excel的表格功能来代替动态区域(Excel 2003中称为列表)。
2. 使用其他行和列计算并存储中间结果一次,以便在其他公式中重复使用它们。并且,如前所述,尽可能引用其他单元格已有的计算结果,这样可提高运算效率。
11.png (13.93 KB, 下载次数: 4)
下载附件 保存到相册
2015-1-24 22:57 上传
在C2单元格输入公式:
=SUM($A$2:$A2)
然后向下填充公式到 C2000。如上图。B列的公式是上一累加结果加上本行数字。B列的公式是引用了上一行单元格的计算结果,B列公式比C列公式单元格引用总数减少了 500 倍,计算量大大减少。
3. 减少每个公式中的引用数,最大程度地减少函数中的引用单元格范围。
尽管在 Excel 2007以后的版本中,数组公式可以处理整列引用,但是这会强制计算列中的所有单元格,包括空单元格。这样会使表格计算起来很缓慢。
4. 尽可能使用最有效的函数(一般情况下自定义函数慢于 Excel 中的内置函数),编制适当的公式,尽可能减少公式的计算次数
=IF(ISERROR(VLOOKUP("龙逸凡",$A$2:$C$1000,3,0)),"查无此人",VLOOKUP("龙逸凡",$A$2:$C$1000,3,0))
如果表格A2:A1000中有“龙逸凡”, 使用上面这个公式,则 Excel 要运算VLOOKUP函数两次。Excel 2007以后的版本中,可以使用 IFERROR 来减少运算的次数:
=IFERROR(VLOOKUP("龙逸凡",$A$2:$C$1000,3,0)," 查无此人")
五、 非必要的情况下不使用会触发重新计算的操作
以下操作会触发重新计算:
1. 在自动模式下单:击行或列分隔符。
2. 在工作表中插入或删除行、列或单元格。
3. 添加、更改或删除已定义名称。
4. 在自动模式下重命名工作表或更改工作表位置。
5. 在表格中使用筛选、隐藏或取消隐藏行。
6. 在自动模式下打开工作簿。如果工作簿上次由不同版本的 Excel 计算,则打开工作簿通常导致完整计算。
7. 选中了“保存前自动重算”选项的情况下在手动模式下保存工作簿。
六、 可能的情况下先对数据进行排序,再使用查找引用。尽可能避免对未排序数据执行查找,因为速度很慢。
1. 如果使用完全匹配选项,则函数的计算时间与找到匹配项之前扫描的单元格数成比例。对于在较大区域内执行的查找,此时间可能非常长。对排序数据使用 VLOOKUP、HLOOKUP 和MATCH 的近似匹配选项的查找时间很短,并且不会根据所查找的区域长度显著增加。
2. 因为完全匹配查找可能很慢,所以应该考虑使用以下可以提高性能的方法:
Ø 使用一张工作表。使查找和数据位于同一工作表中运行速度更快。
Ø 如果可以,请首先对数据进行排序,并使用近似匹配。
Ø 如果必须使用完全匹配查找,请将要扫描的单元格区域限制在最小范围内。使用动态区域名称或表格(列表)功能,而不是引用大量行或列。
七、 做到了前面四点,表格的运算速度还是很慢时,将Excel的计算模式改为手动计算,在需要时再重新计算。
在手动计算模式下,可以通过按 【F9】触发智能重新计算。使用【Shift+F9】 仅重新计算所选工作表,按【Ctrl+Alt+F9】强制对所有公式执行完整计算,也可以通过按【Ctrl+Shift+ Alt+F9】 强制彻底重新构建依赖项和执行完整计算。
F9计算所有打开的工作簿中的所有工作表。
按 Shift+F9 可计算活动工作表。
按 Ctrl+Alt+F9 可计算所有打开的工作簿中的所有工作表,不管它们自上次计算以来是否已更改。
如果按Ctrl+Alt+Shift+F9,则会重新检查相关公式,然后计算所有打开的工作簿中的所有单元格,其中包括未标记为需要计算的单元格。
可以考虑把公式分开,放在多个辅助列中,用多个非数组公式代替。
=SUMPRODUCT(--(②Count Table!$H:$H<>"")*(②Count Table!$K:$K=①Test Info!$B$14)*(②Count Table!CK:CK=1))
把$H:$H变成$H1:$H100按你的需求设定区域
不要整列引用,可以大幅,提高运行速度
excel同一列里有大量的正负相抵的数字,怎样快速的把他们筛选出来并删除...
可以用两个辅助列来实现这种效果。示例数据:1、建立F辅助列,并输入公式:=ABS(E2),将负数转为正数。2、建立G列辅助列,输入公式:=COUNTIF($F$2:$F$9,F2),返回值为2的就是重复数据。3、点击开始菜单,排序和筛选命令,执行自动筛选,将返回值为2的数据筛出,然后删除整行即可。
EXCEL表格中的大量横排数据如何转换成单列的竖排?
以WPS 2019版本为例:关于WPS表格转置,您可使用WPS参考下述步骤完成操作:先复制内容,然后在需要横排显示的地方点击鼠标右键,选择“选择性粘贴”勾选“转置”确定。
如何将EXCEL里的大量数据导入并转化成MATLAB中的矩阵
将Excel数据导入MATLAB中,需要先将数据录入到Excel中,然后再将其导入到MATLAB中参与矩阵运算。具体步骤如下:1. 将需要导入的矩阵结构数据输入Excel,注意列与列与原矩阵的一一对应。2,输入保存数据后,使用以下步骤,我们有更好的名字作为变量的名称,我们想参考在MATLAB(例如,在MATLAB矩阵B矩阵参与操作,你...
EXCEL带有大量公式的数据如何快速处理?
Excel带有大量公式会导致运算速度变慢,想要运算速度变快的方法大致就两种方法:第一种方法是提升电脑配置;第二种方法利用编程来处理,如VBA、Python等。
我的excel表格里面有大量的如图框,有什么方法可以去掉吗?谢谢!_百度...
有两个方法 1、绘图工具栏(没有出现就视图-工具栏-绘图,将其调出)上有一个“选择对象”工具,选择它,然后在工作区划出一个方框,将图片包含在框里,直接按键盘上的删除键删除。2、编辑-定位-定位条件-对象,确定后,所有的图片都被选中。然后也是用删除键删除。
Excel里含有大量的autoshape对象,导致整个文件卡,如何删除autoshape对 ...
看起来你已经选中一个了 再按下ctrl+A键,就会选中全部这些东西,然后按下删除按钮 这个应该就是在EXCEL里插入了矩形形状,选中再按删除就能删掉的
在excel里输入大量内容时,为什么之前输入的内容好多都不见了,点击那些...
单元格不够大,显示不下你输入的内容,内容被隐藏起来了,调整列宽和行高,让它显示出来就OK了。
EXCEL表格为什么内容不多,但占用的空间特别大
原因:表格的空白行太多,占用表格容量。解决方法:1、打开excel,先选择其中一张表格。2、下滑鼠标到表格内容结束的空白行处。3、选中空白行整行,使用快捷键Ctrl+shift+↓,即可选中空白行下面的所有空白。4、鼠标右键点击选择删除选项。5、删除后,点击保存按钮。6、文档容量就变小,依次操作其他表格...
excel中怎样删除大量不需要的数据
excel中可以用数据刷选的方法来删除大量不需要的数据,步骤如下:1.首先打开这个文件,然后ctrl + a 全选,以“大学生活”为关键词,删除不包括“大学生活”的行。2.然后选择“数据”——“筛选”——“自动筛选”。3.如图,点开下拉箭头,选择“自定义”。4.然后在弹出来的对话框中依次选择“不...
Excel里如何才能快速大量地在同一个工作簿里复制某一个...
回答:菜单:1、编辑——移动或复制工作表 2、在对话框里“下列选定工作表之前”下面选定你要复制到工作表(比如sheet1), 3、选中“建立副本” 4、确定,这时,在工作簿中出现新的工作表sheet1(2),该工作表就是sheet1的复制品。 重复上述操作,可以在同一个工作簿里多次复制某一个工作表。
苑佳复方: 数组公式本来就慢,特别是引用了整列,整行区域的数组公式,计算会更慢. 可以考虑把公式分开,放在多个辅助列中,用多个非数组公式代替. =SUMPRODUCT(--(②Count Table!$H:$H<>"")*(②Count Table!$K:$K=①Test Info!$B$14)*(②Count Table!CK:CK=1))
中山市15814077976: 我的EXCEL表格里大量使用了SUMPRODUCT函数,导致系统非常慢 - ?
苑佳复方: 用宏吧,每次要结果运行一下.假定你的结果是在工作表名sheet1的A1单元格(你把下面宏的sheet1和A1替换为你的目标工作表和单元格) sub mysumproduct() dim i% worksheets("sheet1").range("A1")=0 for i=5 to 2000if (worksheets("NI...
中山市15814077976: 如何调高excel运算速度,谢谢.我的表中大量采用了SUMPRODUCT函数和vlookup函数. - ?
苑佳复方: SUMPRODUCT函数之类的,不要使用整列 例如a:a,应该给他一个范围 $a$1:$a$1000 速度会有很大的提高
中山市15814077976: 如何快速的用EXCEL解决大量的这个格式更改成下面的格式?
苑佳复方: 1、假如说该系列数据本身在Excel电子表格中,可以采用如下方法: 选中数据区域,然后点击“数据”——“分列”——“分隔符号”——“其他”里面输入“-”符号——选中“连续分隔符号视为单个处理”前面方框中选项勾号 2、假如数据保存在文本等其他的单个文件中,则采用如下方法: “数据”——“导入外部数据”,找到数据源文件,然后按照第1中方法做下去.最后针对实际情况选择“现有工作表”或“新建工作表”. 数据导入完毕后,删除不需要的列,然后另存为“文本文件(制表符分隔)”文件,用记事本打开该文件,将制表符替换为“----”符号即可,再次保存.
中山市15814077976: 在打开EXCEL时,当出现"EXCEL遇到一个错误,为防止工作薄损坏,不得不见删除一些格式.请重新仔细检查你的格式" - ?
苑佳复方: 之前的文件应该没有了,找不回了.任何软件都有可能会出错崩溃的,所以对重要的数据要进行备份再处理,并且多做保存,而不是说不敢用,楼主的观念要改正.出现上面的错误,我帮你查过,主要是因为:经常被编辑的文件,做过大量格式编辑时,容易遇到这个问题,超过了excel的处理能力.你的表格是不是内容很多呢?如果不是特别太多,你可以不带格式的拷到一个新表中,然后手动修改你要的格式.对于这种脆弱的表,不要一次大范围的做格式修改,改几行存一下会好点.另外在修改前最好复制一个备份再进行修改,尤其重要的文件,修改好了确认新的可用可打开没问题了再删除,这是我的一些经验.
中山市15814077976: 我的excel也出现了没法清除剪切板这个怎样办.还有别的电脑的东西我都不能粘贴过来.只要1粘贴过来.?
苑佳复方: 最好答案: 打开excel表格,单击“编辑”菜单中的“Office 剪贴板”. 在表格右侧你会看到剪切板 单击“全部清空”按钮便可.
中山市15814077976: excel表格中总是出现"不同的单元格格式太多"而不让操作怎么办 - ?
苑佳复方: EXCEL中包含的工作表数量本就受内存的限制,在一个工作簿文档中包含太多的工作表,会占用大量内存,如果再进行整表复制,使用剪贴板也会使用内存,卡机就很正常了.建议楼主在空白工作表中,定位好插入点光标(比如单击选定A1单元格),打开“数据”菜单,选择“导入外部数据”、“导入数据”,在弹出的对话框中,打开“文件类型”列表,选择“Excel 文件”,再选择要导入的工作簿文档,选择要导入的工作表,将其数据导入到空白工作表中.此外,工作表的不规范也是造成数据无法正常导入的原因,这是因为在Excel工作表中,将数据都视为二维(即由行和列简单对应的)数据关系,过多地合并单元格,会打破这种数据关系,造成上述问题.
中山市15814077976: 我的EXCEL表格中总是出现“不同的单元格格式太多”而不让操作怎么办???20我的EXCEL表格中总是出现“不同 - ?
苑佳复方: 新建一个EXCEL表格,然后把原来的内容复制到新表格里,选择性粘帖 -全部
中山市15814077976: Excel 表格中大量不断的复制数据时,出现这样的提示:数据区引用过于复杂,Microsoft Office Excel 不能创建图表,变通方法如下:使选定的数据位于连续的区域;使用同一工作表中的数据 - ?
苑佳复方: 原有的数据前面有个 手动换行符!!! 你可以通过设置单元格属性的自动换行属性,或者通过编辑框中看到.你可以删除他. 下图加红框的地方 应该都有一个手动换行符
中山市15814077976: 我的EXCEL表里有大量的链接,怎样能方便地去除掉呢? - ?
苑佳复方: 1.选则你要去掉的部分,复制2.找个空白的地方用选择性粘贴,选择"数值",这样粘贴出来的就不会带超链接了3.然后把原来的删掉,把刚才粘贴的数值剪切回去