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

如何在Google Sheet的Query+Importrange中包含数据源工作表名称?

解决Google Sheets Query+Importrange结果中添加来源工作表名称的问题

不用在关联Forms的工作表里手动加固定列(毕竟新提交的行不会自动填充),直接在Importrange的环节就给结果追加来源表名列,具体操作如下:

  • 对单个工作表的Importrange结果拼接来源列:
    把原本的IMPORTRANGE("目标表格ID", "Sheet1!A:Z")改成:

    {IMPORTRANGE("目标表格ID", "Sheet1!A:Z"), ARRAYFORMULA(IF(ISBLANK(IMPORTRANGE("目标表格ID", "Sheet1!A:A")),, "Sheet1"))}
    

    这里用数组语法{原数据, 新列}把来源表名列拼在后面,ARRAYFORMULA配合ISBLANK只会在原数据有内容的行显示表名,避免空行生成无效内容。

  • 合并多个工作表的结果并查询:
    如果要从多个关联Forms的工作表取数,用分号;纵向合并每个带来源列的Importrange结果,再套Query过滤和筛选,示例公式:

    =QUERY(
      {
        {IMPORTRANGE("表格ID1", "Sheet1!A:Z"), ARRAYFORMULA(IF(ISBLANK(IMPORTRANGE("表格ID1", "Sheet1!A:A")),, "Sheet1"))};
        {IMPORTRANGE("表格ID2", "Sheet2!A:Z"), ARRAYFORMULA(IF(ISBLANK(IMPORTRANGE("表格ID2", "Sheet2!A:A")),, "Sheet2"))};
        {IMPORTRANGE("表格ID3", "Sheet3!A:Z"), ARRAYFORMULA(IF(ISBLANK(IMPORTRANGE("表格ID3", "Sheet3!A:A")),, "Sheet3"))}
      },
      "SELECT * WHERE Col1 IS NOT NULL", 1
    )
    

    说明:

    • 分号;用于纵向合并不同工作表的结果
    • Query里的Col1对应原数据的第一列(通常是Forms的时间戳列),过滤掉空行
    • 最后一个参数1表示原数据有表头,Query会自动识别
  • 注意点:

    • 首次使用每个IMPORTRANGE时,需要点击授权按钮允许访问目标表格
    • 确保所有Importrange的列数一致,否则会出现合并错误;如果列数不同,可以调整范围统一列数,比如都取到第10列A:J

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 14:30:38