可变参数与硬编码

问题描述 投票:0回答:2

我有一个包含约 200 个选项卡的大型复杂电子表格。由于大量的公式计算,它的打开/加载速度非常慢(最多 5 分钟)。我正在尝试优化公式,以便电子表格打开/加载速度更快。

最常见的计算之一是将每个选项卡中的约 60 个单元格乘以“Sheet1!B4”(工作表 1,单元格 B4)中的变量。我预计该值可能每年更改一次,这需要更新每个选项卡中至少 60 个单元格中的所有 200 个选项卡。

对值进行硬编码,并在所有选项卡的所有受影响的单元格中每年更新一次,这样会更好吗?

或者以某种方式引用它是否可以,这不会影响性能,并且最好使其更快?

以下是我正在考虑的三个选项:

  1. 硬编码值:

    =countif(C$10:C$30,$B60) * 10

  2. 参考电池:

    =countif(C$10:C$30,$B60) * Sheet1!:B4

  3. 使用单个单元格的命名范围:

    =countif(C$10:C$30,$B60) * PARAMETER_VAL
    其中
    PARAMETER_VAL
    是引用
    Sheet1!B4

  4. 的命名范围

以上哪一个最快?

有没有其他方法可以让它更快,但我可能会错过?

optimization google-sheets formulas
2个回答
1
投票

我认为这三种替代方案中的任何一种都不会对电子表格性能产生显着差异,因为引用/命名范围指向具有固定值的单元格。

相关问答


0
投票

我想也许每年一次让电子表格在更新所有单元格使用的变量后进行数学计算,然后“复制/粘贴(仅值)”并保存为“其他文件”。这样,所有更新的值都将被硬编码,这可能会大大加快速度。

但是您准备好每年检查一次所有 200 个选项卡了吗?我不知道你一年中浪费了多少时间,每次访问文件都要等待 5 分钟......

也许您甚至可以在选择多个选项卡(就像同时选择所有选项卡)时进行“复制/粘贴为值”,但我使用 libre,它的行为可能与 excel 不同,我什至不知道如果这在其中任何一个中都是可能的,并且您的系统也可能会耗尽内存(我从未尝试过这样的事情)。

© www.soinside.com 2019 - 2024. All rights reserved.