01
请勿使用向前引用和向后引用
为了提高清晰度和避免错误,设计公式时应该使它们不向前(向右或向下)引用其他公式或单元格。向前引用通常不影响计算性能,但首次计算工作簿的极端情况除外(在这种情况下,如果有很多公式需要推迟计算,则可能需要较长的时间来建立合理的计算序列)。
02
尽量减少使用通过迭代计算循环引用
通过迭代计算循环引用的速度很慢,因为需要进行多次计算,而且这些计算是单线程的。通常可以使用代数“展开”循环引用,这样就不再需要进行迭代计算。例如,在现金流和利息计算中,尽量先计算不含利息的现金流,再计算利息,然后计算包括利息在内的现金流。
Excel 逐个工作表计算循环引用,而不考虑依赖关系。因此,如果循环引用跨多个工作表,通常计算速度会很慢。尝试将循环计算移动到单个工作表上,或优化工作表计算顺序,以避免不必要的计算。
在迭代计算启动之前,Excel 必须重新计算工作簿以标识所有循环引用及其依赖项。此过程相当于两到三次迭代计算。
在确定循环引用及其依赖项后,每次迭代不仅需要 Excel 计算循环引用中的所有单元格,还需要计算依赖于循环引用链中单元格的所有单元格,以及可变单元格及其依赖项。如果有依赖于循环引用中的单元格的复杂计算,将其隔离到一个单独的关闭工作簿中,并在循环计算聚合后打开它以进行重新计算,这样速度可以更快。
在循环计算中,减少单元格的数量和这些单元格所需的计算时间非常重要。
03
避免工作簿之间的链接
尽可能避免工作簿间的链接;这种链接的速度可能很慢,容易断开,并且不一定易于查找和修复。
使用数量较少的大型工作簿通常(但不总是)优于使用数量较多的小型工作簿。以下是一些例外情况:你具有很多极少重新计算的前端计算,因此可以将它们放在单独的工作簿中;或者你的 RAM 不足。
尝试使用在关闭的工作簿上工作的简单直接单元格引用。通过执行此操作,在重新计算 任何 工作簿时可避免重新计算 所有 链接的工作簿。此外,还可以看到 Excel 从关闭的工作簿中读取的值,这通常对于调试和审核工作簿非常重要。
如果不能避免使用链接的工作簿,请尝试将它们全部打开而不是关闭,并且先打开链接指向的工作簿再打开包含链接的工作簿。
04
最大程度地减少工作表之间的链接
使用很多工作表可以简化工作簿的使用,但是,通常计算指向其他工作表的引用比计算工作表内的引用速度要慢。
05
最大程度地减小已用区域
为了节省内存和减小文件大小,Excel 会尝试只存储已用工作表上的区域的相关信息。这称为 已用区域。有时,各种编辑和格式设置操作将已用区域显著扩展到你当前认为已使用的区域之外。这会导致性能障碍和文件大小障碍。
可以使用 Ctrl+End 检查工作表上可见的已用区域。如果这是多余的,则应考虑删除上次实际使用的单元格下方和右侧的所有行和列,然后保存工作簿。首先创建备份副本。如果在扩展到删除区域或引用删除区域的范围使用公式,这些范围的大小将缩小或更改为 #N/A。