如何禁用谷歌表格上的自动重新计算?

She*_*ord 5 google-sheets google-sheets-formula

简化场景:

工作表 Customer_Orders 具有行块,每行都有产品代码、订购数量和尺寸。一堆其他的东西是根据这三个花絮来查找/计算的。到季节结束时,该表大约有 5000 行。

工作表 Raw_Inventory 在前 500 行中包含年份开始,然后对 Customer_orders 进行查询。到赛季结束时,该工作表大约有 2000 行。

据我所知,每次我更改 Cust_Orders 中的 3 个字段之一时都会运行此查询。

Sheet Inv_Status 是针对 Raw_Inventory 运行的数据透视表,而且,我认为每次修改 Raw_Inventory 时,都会重新计算数据透视表。(还有几个其他数据透视表使用相同的数据。)

结果是,对 Cust_Orders 进行更改可能会导致长达 2 分钟的时间,而计算会赶上。

(硬件:Mac Pro、24 GB 内存、3.2 GHz、4 核;当前版本的 Chrome 在 Yosemite 下运行)

我想做的是以下其中一项:

  • 延长更新之间的时间。
  • 能够手动重新计算工作表 Raw_Inventory。

部分解决方法:

我创建了一个导入 raw_Inventory 的新工作表。该副本用于数据透视表。ImportRange 仅每 30 分钟运行一次。

下一步将用无数个简单的赋值语句替换查询。我希望当我在 Cust_Orders 中进行更改时,这会将查询 3000 行替换为查询单行。

小智 5

我遇到了类似的问题,我通过创建一个启用单元格来解决它,在该单元格中输入 0 或 1,然后在公式中使用该单元格。以这样的方式:

A
1 启用公式 0
2 = if(B1=0; 0; 复杂公式1) = if(B1=0; 0; 复杂公式2)
3 = if(B1=0; 0; 复杂公式1) = if(B1=0; 0; 复杂公式2)


这样,当我需要更改电子表格时,我会禁用公式(在 A1 上放置 0),更改电子表格,最后启用公式(在 A1 上放置 1)。

这不是最好的解决方案,但它对我有用。


She*_*ord 0

这不是我最初的问题——如何控制重新计算的答案,而是一种解决方法,最终是一个更好的解决方案。

问题的快速重述:

CustOrders 从 RawInv 表中提取了库存描述。

RawInv 从 CustOrders 更新。这不完全是循环依赖,因为 RawInv 仅更新 CustOrders 的数量。但这意味着只要 CustOrders 发生更改,就需要重新计算 RawInv。

每行一个查询创建描述会让情况变得更糟。


解决方案就是重构。

  • 创建了另一个电子表格 CustSupport。
  • 它保留了 RawInv 和 Trees——后者是描述。它还具有价格和四舍五入表的主参考表。这两个选项卡很少更改,并根据需要复制到使用它们的工作表中。
  • 它导入了 CustOrders 的副本。由于此副本与主订购表没有任何依赖关系,因此我不必等待它重新计算。
  • RawInv 根据此 CustOrders 副本重新计算。
  • 我用 VLookups 批量替换了查询。这需要对列进行一些重新排列。