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

Google Sheets Query函数动态引用多工作表实现方案咨询

解决方案

你之前的方案失效是因为INDIRECT函数仅支持解析单个工作表的单元格/区域引用,无法识别大括号{}拼接的多区域数组字符串,因此无法直接将预生成的引用串转为QUERY可用的数据源。

方案1:下拉适配(匹配原有使用习惯)

直接替换K7单元格的原有公式,下拉填充到K29即可,新增工作表时只要把表名补充到E7:E29对应位置即可自动纳入统计:

=IF(J7="";;SUM(REDUCE(;E7:E29;LAMBDA(acc;sheet_name;IFERROR({acc;QUERY(INDIRECT(sheet_name&"!G:I");"Select Col2 where Col1 = '"&J7&"'";)};acc)))))

逻辑说明:

  • REDUCE 遍历E7:E29存储的所有工作表名,逐表通过INDIRECT读取G:I列数据
  • 用QUERY匹配当前行J列的标识值,将符合条件的工时数据追加到累计数组中
  • 最后对累计的所有工时数据求和,IFERROR用于过滤无效表名避免报错

方案2:自动溢出(无需手动下拉)

在K7单元格输入以下公式,会自动计算并填充K7到K29的所有结果,后续新增工作表同样只需要更新E列的表名列表即可:

=BYROW(J7:J29;LAMBDA(current_j;IF(current_j="";;SUM(REDUCE(;E7:E29;LAMBDA(acc;sheet_name;IFERROR(FILTER(INDIRECT(sheet_name&"!H:H");INDIRECT(sheet_name&"!G:G")=current_j);acc)))))))

注意事项

  • 确保E列存储的工作表名称和实际表名完全一致,无多余空格或特殊符号
  • 如果表名包含空格、中文或特殊字符,需要将公式中INDIRECT(sheet_name&"!G:I")修改为INDIRECT("'"&sheet_name&"'!G:I"),避免引用识别失败

内容的提问来源于stack exchange,提问作者Otávio Teixeira

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 06:18:02