在处理包含多个公式的电子表格时,如果用户在单元格中输入数据然后离开该单元格,Excel 会冻结几秒到几分钟。具体时间取决于用户处理的电子表格。我使用资源监视器发现,在冻结期间,CPU 的硬使用率达到了 25%。在我们的高性能工作簿上,它使用了八个核心中的两个 100%,但在我性能较差的笔记本电脑上,它分布在所有四个核心上,但仍然锁定在 25%。根据 Excel 的 MSDN 论坛,所有版本的 Excel 中某些用户定义的公式的上限为 25%,这很正常,但是我已经在 Excel 2010 中测试过,该过程是即时的,在同一型号、相同 RAM 配置的笔记本电脑上,CPU 使用率几乎没有波动。
我已经检查了 Excel 公式的 CPU 分配,并且它设置为使用所有可用的 CPU 能力。
如果您关闭自动计算,问题仍然存在。
我尝试将一个工作表中的几行复制到新工作簿中,它只冻结了大约十分之一秒,但当我添加一个工作表的其余部分时,冻结时间增加到大约半秒。添加的数据越多,冻结时间越长,速度快得惊人。半秒钟的冻结发生在一个只有 50 行的工作表中,每行有五六列的公式。
我尝试禁用与其他工作簿的链接,并隔离这一个,但这对冻结持续时间没有影响。
我可以理解 Excel 将自身 CPU 使用率限制在 25%,但我无法理解为什么这个过程会使用 25% 的 CPU,而在 2010 年,完全相同的电子表格并没有造成任何明显的 CPU 使用率。
似乎正在发生的事情是,每次在单元格中输入数据时,Excel 都会重新计算整个工作簿中的每个公式。这可能是正常行为,也可能不是。根据我在研究此问题时访问过的一些论坛,Excel 的工作方式就是这样,而且一直如此。但很明显,有些事情已经发生了变化。如果在 2010 年它每次都重新计算每个公式,那么它这样做很有效率,而在 2016 年它却让整个应用程序挂起。我也发现了 2013 年也发生过这种情况的其他报告,但在这些情况下,没有人提出我尚未尝试过的解决方案。
任何建议都值得感激,因为财务用户有几个此类电子表格,每个月需要数百个条目。如果他们必须等待他们输入的每个条目都进行处理,他们就无法高效或理智地工作。用户已经表示,如果我们找不到解决方案,他们将需要回滚到 Office 2010,因为这使他们无法及时完成工作。
这里您可以找到一行示例,其中显示了我隐藏了其中没有公式或数据的列的文档中的公式。您可以单击图像以将其展开并使其可读。
答案1
解决此问题的快速(虽然不好看但很快)方法是单击工作簿中的其他选项卡,然后返回,您就可以访问和更新单元格。但是这种情况经常发生,以至于在 excel 2016 中工作非常糟糕。
需要注意的是,我发现在尝试向包含“@”的任何单元格中输入数据时遇到最大的问题 - 例如在输入带有“@”的电子邮件或密码时。
答案2
我也遇到过这个问题。程序挂起,CPU 长时间处于峰值状态。有时持续时间可能长达几分钟,有时甚至超过半小时!
在工作中,当我在工作表较长的电子表格中使用中等复杂公式时,这种情况经常发生。有些工作表有 400 多行,我的公式使用了 INDEX、MATCH、EXACT、VLOOKUP、TRANSPOSE、OFFSET 以及其他一些对程序负担较小的公式。还使用了一些命名数组。
这是一个明显的错误,开发人员应该调查。