基于Google Sheets为临床试验标本生成唯一递增标本ID
Google Sheet自动生成临床试验标本ID脚本方案
实现步骤
1. 确认表格结构
假设Google Form提交的数据存放在名为「表单响应1」的工作表中:
- 第1列(A列)留空,用于存放自动生成的标本ID
- 第2列(B列)为Form录入的Study ID(若你的Study ID在其他列,后续代码需对应调整列号)
- 后续列依次为样本采集日期、接收日期、标本类型等Form录入项
2. 编写自动生成脚本
打开你的Google Sheet,按以下操作添加脚本:
- 点击顶部菜单栏「扩展程序」→「Apps脚本」
- 删除默认的
myFunction代码,替换为以下脚本:
function onFormSubmit(e) { // 获取表单提交对应的工作表 const targetSheet = e.source.getSheetByName('表单响应1'); const currentRow = e.range.getRow(); // 获取当前行的Study ID(这里假设Study ID在第2列,若位置不同请修改数字2) const studyId = targetSheet.getRange(currentRow, 2).getValue(); // 统计该Study ID已提交的样本总数(从第2行开始,排除表头) const allStudyIds = targetSheet.getRange(2, 2, targetSheet.getLastRow() - 1, 1).getValues(); const sampleCount = allStudyIds.filter(item => item[0] === studyId).length; // 生成4位补零的序号,拼接成标本ID const sequenceNum = sampleCount.toString().padStart(4, '0'); const specimenId = `${studyId}/${sequenceNum}`; // 将生成的标本ID写入当前行的第1列(A列) targetSheet.getRange(currentRow, 1).setValue(specimenId); }
3. 设置脚本触发条件
脚本需要绑定表单提交事件才能自动运行:
- 在Apps脚本界面,点击左侧菜单栏「触发器」
- 点击「添加触发器」,按以下配置设置:
- 选择函数:
onFormSubmit - 选择部署类型:「Head」
- 选择事件源:「从表单提交」
- 选择事件类型:「On form submit」
- 选择函数:
- 点击「保存」,按提示完成权限验证
4. 测试验证
提交1条Google Form数据,检查工作表第1列是否生成符合要求的标本ID:
- 同一Study ID的第1个样本:
[Study ID]/0001 - 同一Study ID的第3个样本:
[Study ID]/0003 - 不同Study ID的序号独立递增,互不干扰
内容的提问来源于stack exchange,提问作者tlo
相关产品推荐
相关产品推荐

