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

如何在Google Sheets中自动生成ENV格式的连续文档编号?

简便实现Google Sheets自动生成连续ENV格式编号的方法

方法一:纯公式实现(无需脚本,最简便)

适合大多数场景,分两种情况选择:

场景1:允许删除历史行,编号连续不中断

假设文档名称在A列,编号要生成在B列:

  • 在B2单元格输入以下公式,按Ctrl+Shift+Enter(新版Sheets直接回车即可):
    =IF(A2<>"", "ENV"&TEXT(MAX(IF(LEFT(B$1:B1,3)="ENV", VALUE(RIGHT(B$1:B1,4)), 0))+1, "0000"), "")
    
  • 把B2的公式下拉到需要的行,之后只要在A列输入文档名称,对应的B列就会自动生成下一个连续的ENV编号。

场景2:不删除历史行,按输入顺序生成编号

如果不会删除A列的历史记录,用这个更简单的公式:

  • 在B2单元格输入:
    =IF(A2<>"", "ENV"&TEXT(COUNTA(A$2:A2), "0000"), "")
    
  • 下拉公式后,每在A列新增一行内容,B列就会按顺序生成ENV0001、ENV0002...的编号。

方法二:简单脚本实现(自动触发,无需下拉公式)

如果希望输入文档名称后立刻自动生成编号,不用手动下拉公式,可以用Google Apps Script:

  1. 打开你的Google Sheets,点击顶部「扩展程序」>「Apps脚本」
  2. 删除默认的代码,粘贴以下脚本:
    function onEdit(e) {
      const sheet = e.source.getActiveSheet();
      const targetRange = e.range;
      // 这里设定文档名称在第1列(A列),编号写入第2列(B列),可按需修改列号
      if (targetRange.getColumn() === 1 && targetRange.getValue() !== "") {
        const lastRow = sheet.getLastRow();
        // 提取之前所有ENV编号的数字部分
        const existingIds = sheet.getRange("B2:B" + (lastRow - 1)).getValues()
          .filter(cell => cell[0]?.startsWith("ENV"))
          .map(cell => parseInt(cell[0].slice(3)));
        // 计算下一个编号
        let nextNumber = 1;
        if (existingIds.length > 0) {
          nextNumber = Math.max(...existingIds) + 1;
        }
        // 格式化为ENV####并写入对应单元格
        sheet.getRange(targetRange.getRow(), 2).setValue(`ENV${nextNumber.toString().padStart(4, '0')}`);
      }
    }
    
  3. 点击左上角保存,给脚本起个名字(比如「AutoENVIdGenerator」)
  4. 回到表格,第一次在A列输入内容时,会弹出授权提示,按照指引完成授权即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 16:02:16