【发布时间】:2021-06-22 16:23:03
【问题描述】:
我遇到了一个问题,我需要确保 Google 表格在数据更改时触发单元格刷新。出于各种原因,我的工作表设置方式是我在单元格的标题中有一个 ArrayFormula 计算/登录,它基本上会计算它下面的所有行。为简单起见,我的方程是 ArrayFormula 并传递一个值,例如“C2:C”,这最终是说“请给我给定行的 C 列的值。所以我可能有类似 ArrayFormula(C2:C + 1) 的东西 - 这实际上是说'给我当前行的 C 列并添加一个。
现在,问题是我正在构建一个自定义函数,我们称之为 Foo,并且我还想将它传递给“给定行的列 C” - 所以现在可以说我的 ArrayFormula 看起来像这样:ArrayFormula(Foo( C2:C))。
我认为,问题在于,由于谷歌表格试图巧妙地缓存函数调用的方式,它无法识别值何时更改并重新计算调用。 Google 表格看到“C2:C”根本没有改变,所以它不会刷新它,即使我确实改变了给定行的 C 列的值。
有人对如何更好地实施或解决此问题有任何建议吗?
我使用以下谷歌表格创建了一个很好的测试用例:https://docs.google.com/spreadsheets/d/1fCiRSiuII-2vOWJD9LWWkh9qjK0P_dZskofwBYxiZUI/edit?usp=sharing
如果您注意到,我有两列,Total Sft 和“Total sqft New”。这两个都应该产生相同的值。在第一个中,我进行了手动乘法 - 例如 A2:A*B2:B - 生成了预期的结果。 在第二列中,我创建了一个名为 testFunctionMultiply 的测试函数,而不是手动多重方程,它执行相同的操作 - 将值相乘。
如您所见,这些列显示不同的值,而我本以为它们会匹配。想法?
【问题讨论】:
标签: google-apps-script google-sheets