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 的新工作表。该副本用于数据透视表。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)。
这不是最好的解决方案,但它对我有用。
这不是我最初的问题——如何控制重新计算的答案,而是一种解决方法,最终是一个更好的解决方案。
问题的快速重述:
CustOrders 从 RawInv 表中提取了库存描述。
RawInv 从 CustOrders 更新。这不完全是循环依赖,因为 RawInv 仅更新 CustOrders 的数量。但这意味着只要 CustOrders 发生更改,就需要重新计算 RawInv。
每行一个查询创建描述会让情况变得更糟。
解决方案就是重构。
| 归档时间: |
|
| 查看次数: |
13464 次 |
| 最近记录: |