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

Google Sheets是否有函数可提取同一工作簿多工作表指定范围数据

Google Sheets多工作表指定范围数据提取方案

问题答复

Google Sheets没有单一的原生专门函数可直接实现该需求,但可通过多个函数组合完成全流程操作,无需编写自定义脚本即可落地。

具体实现步骤

  • 第一步:统一各工作表的列规则,确保所有用户工作表的日期列、数值列位置一致,推荐将日期统一放在A列、目标数值放在B列。
  • 第二步:在汇总表中单独列出所有需要提取数据的工作表名称,可放在汇总表的Z列等闲置列区域,避免和汇总数据冲突。
  • 第三步:输入聚合公式批量提取数据,若仅需提取2021年8月1日当天的第二列数值,使用以下公式:
    =BYROW(闲置列的工作表名称范围, LAMBDA(sheet_name, XLOOKUP(DATE(2021,8,1), INDIRECT(sheet_name&"!A:A"), INDIRECT(sheet_name&"!B:B"), "无匹配数据")))
  • 若需提取2021年8月1日到8月31日整月的所有第二列数值,合并为单列汇总,使用以下公式:
    =TOCOL(BYROW(闲置列的工作表名称范围, LAMBDA(sheet_name, FILTER(INDIRECT(sheet_name&"!B:B"), INDIRECT(sheet_name&"!A:A")>=DATE(2021,8,1), INDIRECT(sheet_name&"!A:A")<DATE(2021,9,1)))), 1)
    公式末尾的参数1会自动过滤空值,无需额外清洗数据。
  • 可选优化:如果不想手动维护工作表名称列表,可以通过命名范围实现自动识别所有工作表:
    1. 点击顶部菜单栏「数据」→「命名的范围」,新建名称为ALL_SHEETS,应用范围选整个工作簿,值输入=REDUCE(, TOROW(GETWORKSPACE(1), 1), LAMBDA(a, b, IFERROR(VSTACK(a, REGEXEXTRACT(b, "(.*?)!/")), a)))
    2. 后续公式中的「闲置列的工作表名称范围」直接替换为ALL_SHEETS即可,新增工作表后无需手动更新名称列表。

注意事项

  • 若部分工作表不存在2021年8月的相关数据,公式会自动跳过对应区域,不会报错。
  • 若日期列是文本格式而非日期格式,需要先将DATE(2021,8,1)替换为对应格式的文本字符串,避免匹配失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 03:48:00