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

如何基于指定参数在Google Sheets中生成唯一Trip ID

Google Sheets 运输Trip ID唯一值生成实现方案

两种实现路径均可行,可根据自身需求选择:

方案一:原生公式实现(零代码,配置即用)

  • 适用场景:仅需生成ID,无额外定制化逻辑
  • 操作方式:假设表格第1行为表头,日期数据存放在A列,选中U2单元格输入以下公式,按回车后整列会自动填充所有行的ID,后续新增行也会自动生成值:
=ARRAYFORMULA(IF(ROW(A:A)=1,"Trip ID",IF(NOT(ISBLANK(A:A)),T:T&REGEXREPLACE(S:S,"[A-Z-]","")&TEXT(DATEVALUE(A:A),"ddmmyy")&TEXT(COUNTIFS(T:T&REGEXREPLACE(S:S,"[A-Z-]","")&TEXT(DATEVALUE(A:A),"ddmmyy"),T2:T&REGEXREPLACE(S2:S,"[A-Z-]","")&TEXT(DATEVALUE(A2:A),"ddmmyy"),ROW(A:A),"<="&ROW(A:A)),"00"),"")))
  • 逻辑说明:
    • 自动提取S列卡车尺寸的纯数字部分,兼容带横杠(如S-12)和不带横杠(如S12)的尺寸格式
    • 自动将日期格式化为两位日+两位月+两位年的固定格式
    • 按「承运商+车型+日期」维度自动统计行程序号,序号自动补零为两位
    • 生成规则完全匹配要求格式,天然保证整列ID唯一

如果日期存放在其他列,把公式中所有A:A替换为对应日期列的列标即可。

方案二:Google Apps Script实现(高扩展性)

  • 适用场景:后续需要扩展ID重复告警、数据合法性校验、跨表同步等定制逻辑
  • 操作方式:
    1. 打开表格,点击顶部菜单栏「扩展程序」→「Apps Script」进入脚本编辑器
    2. 清空编辑器内默认代码,粘贴以下代码后保存,按提示完成账号授权:
function onEdit(e) {
  const activeSheet = e.source.getActiveSheet();
  const row = e.range.getRow();
  // 跳过表头行,可根据实际表头位置调整阈值
  if (row < 2) return;
  // 列号配置:A列=1,S列=19,T列=20,U列=21,可按实际表结构修改
  const COL_DATE = 1, COL_SIZE = 19, COL_CARRIER = 20, COL_TRIP_ID = 21;

  // 读取当前行必填参数,缺值则不生成ID
  const dateVal = activeSheet.getRange(row, COL_DATE).getValue();
  const sizeVal = activeSheet.getRange(row, COL_SIZE).getValue();
  const carrierVal = activeSheet.getRange(row, COL_CARRIER).getValue();
  if (!dateVal || !sizeVal || !carrierVal) return;

  // 拼接ID前缀:承运商+车型数字+格式化日期
  const sizeNum = sizeVal.replace(/[A-Z-]/g, "");
  const dateStr = Utilities.formatDate(new Date(dateVal), Session.getScriptTimeZone(), "ddMMyy");
  const idPrefix = `${carrierVal}${sizeNum}${dateStr}`;

  // 计算当日同维度行程序号
  const existIds = activeSheet.getRange(2, COL_TRIP_ID, row - 2, 1).getValues().flat();
  let seq = 1;
  existIds.forEach(id => id?.toString().startsWith(idPrefix) && seq++);
  const finalId = `${idPrefix}${seq.toString().padStart(2, "0")}`;

  // 写入ID到U列
  activeSheet.getRange(row, COL_TRIP_ID).setValue(finalId);
}
  1. 授权完成后回到表格,正常录入日期、车型、承运商信息即可,U列会自动触发生成对应唯一Trip ID。

内容的提问来源于stack exchange,提问作者S. Shotez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 06:48:24