excel 2010/2013插入行很慢

我发现在表结构或正常单元格中插入行 – 手动或其他 – 非常慢。 像在表格中插入7行(仅包含文字string)或在相邻的单元格中,在没有条件格式的表格中插入7行,需要10分钟以上。

该工作簿有45个工作表和20个表格,大表格有大约10KB的XML文件。 有价值33MB的电子表格XML,大部分是300KB,5MB以上1MB,15MB。 它相当复杂但并不庞大。 所有的计算从左到右,从上到下,从右到左的工作stream程,我主要设法避免数组公式。 所有的表都有规则的结构,计算的列只有一个公式。 大多数表列是计算出来的,只有几个较小的包含文字数据。

我在几张纸上有很多条件格式,但我一直非常小心地保持它的合理性,并阻止它碎片化:我对整张纸有大约45条规则,这些规则被概括为覆盖所有列。 格式化决策的主要处理过程被作为帮助列移到表格中,正如我所说的,结构非常规则。

看起来这些types的编辑不是线程安全的,所以只有一个处理器正在加载,并且存在非常轻的光盘活动。 我无法理解excel在做什么。 当然,我把计算设置为手动…

我已经看到评论认为这种types的事情增加了行和列的限制,但我不明白为什么这应该是一个因素。 如果我查看电子表格的XML文件,则只有代码用于包含值或公式的行和列。 那么为什么空闲的细胞在发挥作用呢?

这对我的生产力产生了巨大的影响 – 虽然我在新的业余时间通过阅读这样的网站了解了很多。 我真的需要弄清楚问题是什么,以便我可以避免或解决这个问题。

有人可以帮我吗?

以防万一有人想知道这个问题,答案就是在excel中使用power query和power view。 我发现中等(500k行)数据集和复杂的结构和转换都顺利进行。 我从来不再使用表格中的公式。 另一件事是,这自然导致你强大的bi,这是伟大的。 这是我的提示。

长的插入时间可能是由于引用整列或整行的INDEX(或其他函数)引起的。

我有一个非常类似的问题:不是太复杂的工作表(大约2500行,有15列数据(查询结果)和大约10列公式从查询结果中提取数据)当我插入列时,列可能会在4秒左右插入,但第二次插入将占用一分钟以上,我search了互联网,发现这个网站http://support.microsoft.com/kb/2755145

我的经验:

我在工作表中使用了一个像= INDEX(11:11,1,MATCH(AC $ 5,$ 10:$ 10,0))的公式,大概有25000次。 您可以看到每个公式引用了整个行两次。 显然,当我添加一列时,由于每一行都受到影响,因此我的每一个公式都受到影响,Excel会尽职尽责地设法弄清楚该怎么做。

基于我从微软网站学到的东西,我把公式改为= INDEX(QueryResults,ROW() – ROW(QueryHeaders),MATCH(AC $ 5,QueryHeaders,0)),其中QueryResults和QueryHeaders是简单的命名范围。

在整张纸上做了这个改动之后,插入一个列几乎是瞬间的 – 不到一秒钟。

这听起来像这里描述的问题http://fastexcel.wordpress.com/2012/01/30/excel-2010-tableslistobject-slow-update-and-how-to-passpass/

如果是这样,你必须打破绕过它的条件之一:
对于发生这种放缓,以下每个条件都必须是正确的:

A cell within the Table must be selected The sheet containing the Table must be the Active Sheet The cell being updated must be on the same sheet as the table, but does not have to be within the table There must be a reasonable number of formulas in the workbook. 

也许你可以通过VBA间接地更新另外一个工作表。 或者可能将所有公式移到单独的工作簿将会绕过它。
或者将您的表格转换回正常范围(如果需要,也可以使用dynamic范围名称)

尝试删除条件格式,然后在主代码完成后重新使用vba。 为我工作。