Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
excel 2010/2013插入行速度非常慢_Excel_Insertion - Fatal编程技术网

excel 2010/2013插入行速度非常慢

excel 2010/2013插入行速度非常慢,excel,insertion,Excel,Insertion,我发现在表结构或普通单元格中插入行(手动或其他方式)非常慢。例如,在一个表(仅包含文字字符串)或相邻单元格中插入7行(在没有条件格式的工作表中)需要10分钟以上的时间 该工作簿有45个工作表和20个表,较大的表有大约10KB的XML文件。有33MB的电子表格XML,其中大多数约为300KB,其中5个超过1MB,另一个为15MB。它相当复杂,但并不庞大。所有的计算从左到右,从上到下,从右到左,都进行得很顺利,我基本上避免了数组公式。所有表都有规则结构,计算列只有一个公式。大多数表列都是经过计算的,

我发现在表结构或普通单元格中插入行(手动或其他方式)非常慢。例如,在一个表(仅包含文字字符串)或相邻单元格中插入7行(在没有条件格式的工作表中)需要10分钟以上的时间

该工作簿有45个工作表和20个表,较大的表有大约10KB的XML文件。有33MB的电子表格XML,其中大多数约为300KB,其中5个超过1MB,另一个为15MB。它相当复杂,但并不庞大。所有的计算从左到右,从上到下,从右到左,都进行得很顺利,我基本上避免了数组公式。所有表都有规则结构,计算列只有一个公式。大多数表列都是经过计算的,只有几个较小的列包含文字数据

我确实在一些工作表上有很多条件格式,但我一直非常小心地保持它的合理性,并阻止它分裂:我对整个工作表有大约45条规则,这些规则被概括为涵盖所有列。格式化决策的主要处理作为辅助列移动到表中,正如我所说的,结构非常规则

这些类型的编辑似乎不是线程安全的,因此只有一个处理器正在加载,并且光盘活动非常少。我不明白excel一直在做什么。 当然,我将计算设置为手动

我看到一些评论将这类事情归因于行和列限制的增加,但我不明白为什么这应该是一个因素。如果我查看电子表格的XML文件,就会发现只有值或公式占据的行和列的代码。那么为什么空置的牢房在起作用呢

这对我的工作效率有着巨大的影响——尽管在我新找到的业余时间里,我通过阅读这样的网站学到了很多东西。我真的需要找出问题所在,以便尽可能避免或解决这个问题

有人能帮我吗


为了防止人们对此感到疑惑,答案是在excel中使用power query和power view。我发现中等(500k行)数据集和复杂的结构和转换都能顺利工作。我不再在表格中使用公式。另一件事是,这自然会导致你的权力bi,这是伟大的。这是我的小费

这听起来像这里描述的问题

如果是这样,您必须打破其中一个条件才能绕过它:
要发生这种减速,必须满足以下条件:

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间接进行更新。或者,将所有公式移动到单独的工作簿中可能会绕过它。
或者将表转换回正常范围(必要时使用动态范围名称)

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

插入时间过长可能是因为索引(或其他函数)引用了整列或整行

我有一个非常类似的问题:工作表不太复杂(大约2500行,15列数据(查询结果),以及大约10列从查询结果中提取数据的公式。当我插入一列时,第一列可能会在4秒钟左右插入,但第二列插入可能需要一分钟。哎呀!我搜索了互联网,找到了这个网站

我的经验:

我使用的公式是=索引(11:11,1,匹配(AC$5,$10:$10,0)),在我的工作表中大约25000次。您可以看到,每个公式引用整行两次。显然,当我添加一列时,由于每一行都受到影响,因此我的每个公式都受到影响,Excel会尽职尽责地工作,试图找出该怎么办

根据我从微软网站学到的知识,我将公式改为=INDEX(QueryResults,ROW()-ROW(QueryHeaders),MATCH(AC$5,QueryHeaders,0)),其中QueryResults和QueryHeaders是简单的命名范围


在我在整个工作表中进行此更改后,插入一列几乎是瞬间的-不到一秒钟。

插入导致隐式重写移位单元格中的所有公式以及依赖移位单元格中任何数据的任何公式-我相信。我假设计算链用于确定哪些单元格可能需要重写插入/删除,但这可能只是对整个工作簿的直接扫描。仅在表格末尾插入(如果需要,进行排序)是否会对性能产生任何影响?但为什么要“移位”空空间?以及如何处理所有常规结构的表引用?如果更改表中的内容,甚至更改行数,则不应通过常规结构影响任何引用。=tablename[@[column name]]例如。此引用独立于表内容甚至行数。因此:=Index(tablename[列名],与此相同:匹配(参考1,tablename[列名2],0))…需要做什么?我不明白…不,先生,重新调整表的大小以在末尾添加行同样令人痛苦…这似乎并不重要。是的,这些都不需要重写-但是Excel知道吗?如果不每次查看,它几乎不会为如此大的工作簿缓存依赖链。表总计和内部数据但是,表的定义确实需要更改。是逐段插入,还是仅插入一个块?您好,我尝试运行宏在目标工作表的列表对象中插入一行。根据活动单元格记录插入点后,宏激活没有表的工作表,然后在目标工作表中插入.理论上,它会重新激活目标表,但我没有停留足够长的时间去发现。基本上,相同的荒谬行为也会发生,它不会