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

Google Forms与Spreadsheets集成:如何关联唯一ID至审批表单

嘿,这个场景我太熟了!你现在卡的点就是把唯一ID作为「纽带」,在两个表单+表格之间传递并关联,给你一步步拆解怎么搞定:

核心解决方案:串联提交ID与审批流程

1. 先给主提交表生成稳定的唯一ID

首先,在第一个提交表单对应的Google Spreadsheet里,给每一条新增的提交生成一个固定不变的唯一ID:

  • 简单版:如果不会删除表格行,直接用=ROW()(比如在A2单元格输入,下拉填充,这样每一行的ID就是行号);
  • 严谨版:用=UUID()生成真随机唯一ID(需要先在Google Sheets里启用「UUID」库,或者写个10行以内的小脚本批量生成)。
    把这个ID单独列出来,比如命名为「提交ID」,作为后续关联的核心字段。

2. 给审批表单的URL拼接ID参数

你现在发的审批链接需要带上这个「提交ID」,这样第二个表单能识别是哪条提交的审批请求:

  1. 打开第二个审批表单,进入「预览」模式,看地址栏里的参数——找到对应「提交ID」输入框的entry.XXXXXX(比如你在审批表单里加了一个“提交ID”的问题,预览时输入任意值,地址栏就会出现entry.123456=测试ID,这里的entry.123456就是你要的参数);
  2. 把审批表单的原始URL改成带参数的格式:
https://docs.google.com/forms/d/e/你的审批表单ID/viewform?entry.123456=[提交ID]
  1. 在第一个表单的邮件通知模板里,把这个拼接好的链接放进去(用Google Sheets的单元格引用,比如=CONCATENATE("链接前缀", A2),A2就是当前行的提交ID)。

3. 让审批表单自动记录提交ID

为了让审批人不用手动输入ID,同时保证数据准确:

  • 在第二个审批表单里,把「提交ID」的问题设置为隐藏字段(编辑表单时,右键该问题选「隐藏」);
  • 开启表单的「允许预填充」设置,这样当审批人点击带参数的链接时,这个隐藏的ID会自动填充,提交后会同步到审批表格的对应列里。

4. 关联主表格与审批表格,同步结果

现在两个表格都有了相同的「提交ID」,用函数就能把审批状态同步回主表格:
在主表格的「审批状态」列(比如Z列)输入:

=VLOOKUP(A2, '审批表格名称'!A:B, 2, FALSE)

解释一下:

  • A2是主表格当前行的提交ID;
  • '审批表格名称'!A:B是审批表格里的「提交ID列」和「审批结果列」;
  • 2表示取审批表格里的第二列(也就是审批结果);
  • FALSE表示精确匹配。
    下拉填充后,主表格就会自动显示对应提交的审批状态啦。

进阶:用脚本实现全自动化(可选)

如果想让审批完成后自动更新主表格+发通知,可以写个简单的Google Apps Script:

  1. 打开审批表格的「脚本编辑器」;
  2. 粘贴下面的代码(记得替换成你的表格ID和列号):
function onApprovalSubmit(e) {
  // 获取审批提交的ID和结果
  var submitId = e.response.getItemResponses()[0].getResponse();
  var approvalResult = e.response.getItemResponses()[1].getResponse();

  // 打开主表格
  var mainSpreadsheet = SpreadsheetApp.openById('你的主表格ID');
  var mainSheet = mainSpreadsheet.getSheetByName('主表单数据');
  var allData = mainSheet.getDataRange().getValues();

  // 找到对应ID的行,更新审批状态
  for (var i = 1; i < allData.length; i++) {
    if (allData[i][0] === submitId) { // 主表格第1列是提交ID
      mainSheet.getRange(i + 1, 26).setValue(approvalResult); // 第26列是审批状态列
      break;
    }
  }

  // 可选:给提交人发审批结果通知
  // var submitEmail = allData[i][1]; // 假设主表格第2列是提交人邮箱
  // MailApp.sendEmail(submitEmail, "你的提交已审批", "结果:" + approvalResult);
}
  1. 设置「触发器」:点击脚本编辑器的「编辑」→「当前项目的触发器」,添加一个「表单提交」的触发器,关联这个函数。

这样整个流程就完全打通了,唯一ID作为核心纽带,把提交、审批、状态更新全串起来啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:21:35