很快
我计划使用onEdit(e)
Google Sheets 和 Google Apps Script (1) 事件来记录更新 180x8 公式数组的单元格 1,1 和 180,8 的时间戳,因为 Google 电子表格从上到下和从上到下更新左到右。
这种方法是否足够?
注意事项
重新计算
Google 电子表格有一个参数来确定何时重新计算 NOW()、TODAY()、RANDOM 和 RANDOM.BETWEEN() 等函数。
选项包括:
- 在变化中
- 在变化和每一分钟
- 在变化和每小时
(4)
注意:外部数据函数按以下时间间隔重新计算:
- 导入范围:30 分钟
- ImportHtml、ImportFeed、ImportData、ImportXml:1 小时
- 谷歌财经:2 分钟
待办事项:确定是否可以以任何方式利用它
Google Apps 脚本
onEdit(e)
这是一个简单的事件。它、其可安装版本以及 Google 电子表格中的其他事件响应用户操作,因此它可用于调用函数,例如在编辑单元格时。
“更改”是可设置的事件,可用于以下类型的更改:EDIT、INSERT_ROW、INSERT_COLUMN、REMOVE_ROW、REMOVE_COLUMN、INSERT_GRID、REMOVE_GRID、FORMAT 或 OTHER。
待办事项:确定 OTHER 包含哪些类型的更改。
从上面我很清楚,它可以用来识别重新计算的开始。
待办事项:确定如何通过 Google Apps 脚本确定重新计算已完成。
附加信息:
语境
需要提高 Google 电子表格的性能,正在考虑用代码替换公式。为了确定成功的程度,需要有两个解决方案的执行时间的度量。以代码为例,您可以在开头和结尾注册时间戳,然后从最后一个中减去第一个。
电子表格有一个 180 x 8 的公式数组。这些公式从行和标题中获取数据并返回一个 1x2 数组。换句话说,公式用于在 180x8 数组的每个元素中嵌套 1x2 数组。
有足够的空间容纳结果矩阵。在矩阵的最小、完整且可验证的示例中,标题将每隔一列放置。在实际用例中,包含一个用于记录笔记的附加列。
电子表格性能
关于执行计算顺序的“理解”,这是基于各种来源中给出的建议,即在用于阅读西方语言(英语、西班牙语、葡萄牙语等)的电子表格中使用相同的约定其他),一方面是因为这就是搜索功能的工作方式,另一方面是因为电子表格以这种方式重新计算得更快。包含在参考文献中的是没有。2 作为各种来源的示例。奇怪的是,在官方文档、Google Sheets 帮助(见 3)中,并没有提到这一点。
参考
- 事件 - 指南 - Google Apps 脚本
- 2.让你的电子表格从左到右,从上到下阅读
- 文件大小 - Google 编辑器帮助
- 更改电子表格的区域设置、时区、计算频率和语言 - Google 编辑器帮助
澄清
这个答案是为了分享我的研究/搜索结果。希望我不会阻止发布答案。
简短的回答
onEdit(e)
使用浏览器的开发工具,例如谷歌浏览器的时间线工具,而不是使用事件(根据定义是服务器调用)。解释
Google 电子表格依赖于客户端脚本的大部分用户交互,因此当感兴趣的操作不包括使用 Google Apps 脚本时,包括不必要的“增加噪音”函数,另一方面,使用像 NOW() 这样的函数结合下面解释的方法引入了其他“噪声”元素,并且相对不准确。
以前的内容
使用事件来确定重新计算完成
根据.getValue() return #N/A when reading ImportXML cell 有时,Mogsdad于 2013 年 1 月 14 日 15:42 回答
选择
现在使用()
通过正确的设置、功能
方法示例AHORA()
和方法,您可以粗略地衡量电子表格的重新计算时间。BF190
,写=NOW()
BH190
,,写=NOW()-BG190
。BH190
。复制单元格
BF190
,仅粘贴单元格中的值BG190
并尽快刷新页面。要做的事情:使用秒表进行测试和比较。