吉列尔莫(Guillermo)有一个很大的工作表,用于定价和计算产品成本。工作表计算正常,然后突然,聚合页面中的某些单元格停止计算。如果他单击该单元格并按Enter,则该单元格将重新计算。吉列尔莫检查了单元格引用的所有格式,并将它们全部设置为会计或数字,并选择了自动计算。他不知道是什么原因引起了问题。

有几件事可能导致此问题。

首先,罪魁祸首可能是工作表的布局。如果您的工作簿中的工作表很大,则记住Excel执行其计算的顺序非常重要。您提到“汇总页面”,这意味着这里有多个工作表在起作用,即使您在一开始只提到了一个“大工作表”。 Excel通过尝试对所有计算进行排序(构建计算链)来重新计算工作表,从而使对其他单元格依赖性最小的单元格堆积在序列的开头,而对其他单元格依赖性最大的单元格放置在末尾的顺序。如果Excel发现一个单元格依赖于计算链中较低位置的另一个单元格,则将重新排列该序列以将该单元格进一步移至该链向下。

因此,如果您的大型工作表包含大量计算,尤其是依赖于其他工作表或工作簿中的值或结果的计算,则Excel可能会感到困惑,并且无法得出所有计算的最终正确结果并且可能无法在第一次复飞时正确地重新计算汇总信息。

综上所述,应该指出的是,在现代版本的Excel中,情况并非如此。在新版本中,Excel比在旧版本程序中进行计算要好得多。因此,罪魁祸首可能在其他地方。

记住这一点,您可以尝试的另一件事是查看错误的公式单元格是否确实包含公式。相反,如果它们被Excel解析为文本,那么您显然会得到错误的结果。您可以选择单元格,按F2(进入编辑模式),然后按Enter。如果您有很多这样的单元格,请尝试以下操作:

。按Ctrl + H。 Excel将显示“查找和替换”对话框的“替换”选项卡。

。在“查找内容”框中,输入等号(=)。

。在“替换为”框中,输入等号(=)。

。单击全部替换。

您可以检查的第三件事是您的工作表是否使用用户定义的函数(UDF)。如果汇总总数在某种程度上取决于UDF返回的值,那么您将需要确保UDF返回的是正确的值。有时,它们可能不会在您期望的时候重新计算,因此(在某些情况下)它们可能会给出错误的结果。如果您认为是这种情况,请修改宏编码,以便在其开头有一个Application.Volatile语句。

而且,说到宏,您可能要检查以确保所有宏都不会影响计算过程或关闭自动计算。

要检查的另一件事是,Excel的第三方加载项是否可能是罪魁祸首。一位_ExcelTips_读者建议,如果大量单元正在使用加载项中的UDF,则Excel需要更长的时间来重新计算。按F9可能有助于加快重新计算过程,但是您可能还希望开始禁用某些加载项以查看问题是否消失。

最后,您将要检查是否在工作表中无意中创建了任何循环引用。当一个单元格中的某个公式以某种方式引用该公式所在的单元格时,就会发生这种情况。

因此,如果单元格C1包含依赖于单元格D7和E7的公式,并且其中一个单元格包含依赖于单元格C1的公式,则存在循环引用。除非正确处理了循环引用(如_ExcelTips_的其他问题所述),否则它们可能会产生意外或错误的结果。如果工作表中有一个循环引用,则状态栏的左侧应有一个指示符。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(13014)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。