Google Sheets能否用自定义函数包裹标准函数控制执行时机?
需求背景与问题描述
我之前在相关平台提问后,得知可能需要用自定义函数解决Google表格的重算问题,但实际落地时遇到了不少卡点,具体情况如下:
- 我的表格场景:我有一个公式
=if(E1="HOLD",,query(Cust_Orders!B6:Z5000,"Select Y,G,I,H,K where H>0 ")),其中E1是包含HOLD和FETCH选项的下拉框。切换到FETCH时,这个query公式重算一次要13秒左右;而切换到HOLD时,因为if的逻辑,query不会执行,单元格直接空白——这完全不符合我的需求。 - 核心诉求:我需要做到两点:一是避免每次修改
Cust_Orders区域就自动重算这个query;二是在选HOLD时保留之前FETCH算出的旧值,因为有两个同事正在使用的数据透视表依赖这个结果。目前我的Google表格重算设置已经是“更改时及其他”了。 - 尝试过的思路:我原本设想做一个只依赖E1(HOLD/FETCH单元格)的自定义函数,让它在公式单元格里执行目标
query逻辑。但调研后发现,现有方案大多要求用AppScript重写query的逻辑,可我希望尽量少写脚本,最好是通用方案,能支持任意公式的重算控制。另外,我查到4年前Google产品论坛里有讨论说脚本无法调用内置函数,我自己也在该论坛提问了,但一直没收到回复。
我需要的可行方案
请提供以下任一或多个可行方案:
- 能在AppScript中直接调用Google表格内置函数(比如
query)的示例代码 - 支持“切换指定区域重算开关”功能的插件推荐(说明插件核心功能即可)
- 比自定义公式更通用的重算控制方法
注意:我拒绝接受用脚本模拟内置函数逻辑的方案,我需要的是直接调用内置函数,或者更通用的重算控制方式。
内容的提问来源于stack exchange,提问作者Sherwood Botsford
相关产品推荐
相关产品推荐

