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」,这样第二个表单能识别是哪条提交的审批请求:
- 打开第二个审批表单,进入「预览」模式,看地址栏里的参数——找到对应「提交ID」输入框的
entry.XXXXXX(比如你在审批表单里加了一个“提交ID”的问题,预览时输入任意值,地址栏就会出现entry.123456=测试ID,这里的entry.123456就是你要的参数); - 把审批表单的原始URL改成带参数的格式:
https://docs.google.com/forms/d/e/你的审批表单ID/viewform?entry.123456=[提交ID]
- 在第一个表单的邮件通知模板里,把这个拼接好的链接放进去(用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:
- 打开审批表格的「脚本编辑器」;
- 粘贴下面的代码(记得替换成你的表格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); }
- 设置「触发器」:点击脚本编辑器的「编辑」→「当前项目的触发器」,添加一个「表单提交」的触发器,关联这个函数。
这样整个流程就完全打通了,唯一ID作为核心纽带,把提交、审批、状态更新全串起来啦!
内容的提问来源于stack exchange,提问作者Abby
相关产品推荐
相关产品推荐

