You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Sheets的QUERY公式中调用自定义函数?

方案可行性说明

这个实现方案是可行的,但有几个细节需要留意:

公式逻辑

你写的QUERY搭配IMPORTRANGE的公式能正常工作,它会从指定的外部表格Reference Info!A2:J区域里,筛选出第二列(Col2)内容和当前表格名称完全匹配的行:

=query(IMPORTRANGE("https://docs.google.com/spreadsheets/d/fsdgsgsdhdshldhsdhgvs/edit","Reference Info!A2:J"),"select * where Col2 matches '"&fileName()&"'")

脚本注意点

你的fileName()函数能正确返回当前表格的名称,但添加的onOpen()函数其实不会触发公式的重新计算——自定义函数的重新计算触发条件只有这几种:

  • 函数所在单元格被手动编辑
  • 表格重新打开
  • 通过「文件 > 电子表格设置 > 计算」里的选项手动触发重新计算

如果想要让公式能自动响应表格名称的修改,你需要额外设置可安装的 onChange 触发器,或者手动触发重新计算。当前的脚本代码如下:

//由于不确定fileName()是否会随重新计算运行,我添加了这个函数
function onOpen(){
fileName();
}

function fileName() {
  return SpreadsheetApp.getActiveSpreadsheet().getName();
}

另外要注意,第一次使用IMPORTRANGE时,必须授权当前表格访问目标外部表格的数据,否则公式会返回权限错误。

内容的提问来源于stack exchange,提问作者onit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 13:45:26