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

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

简化场景:

工作表 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 行。

google-sheets google-sheets-formula
5个回答
5
投票

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

A B
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)。

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


2
投票

无法在 Google 表格中禁用自动重新计算。一种选择是通过仅使用复制/粘贴作为值或使用脚本来用值替换公式。使用脚本的优点是,它还可以用于在需要时再次添加公式。

相关


0
投票

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

快速重述问题:

CustOrders 从 RawInv 表中删除了库存描述。

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

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


解决方案就是重构。

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

0
投票

为了解决这个问题,我编写了一个简单的脚本:

function triggeredCalc() {
    //calculate sum in column A below A1 in a temporary cell
    //then copy the result into the result cell and clear the temporary cell
    sheet = SpreadsheetApp.getActive();
    tempRange = sheet.getRange('B1:B1');
    resultRange = sheet.getRange('A1:A1');
    tempRange.setValue('=SUM($A2:$A)');
    resultRange.setValue(tempRange.getValue());
    tempRange.setValue("");
}

0
投票

SauloAlessandre的方法解决了重新计算,但没有解决评论中提到的存储

我以前遇到过这个解决方案。问题是当它关闭时 所有计算出的单元格都变成空白,这意味着它不能作为 参考。

这个简单的工件可以禁用重新计算并保留最后计算的值。

enter image description here

但是它确实需要启用循环依赖(没什么大不了的),因为 J32 依赖于它自己。

启用循环依赖

文件 > 设置。

enter image description here

随时提出错误/投诉或提出改进建议。

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