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

如何在Google Sheets中为别名/部分相同字符串分配相同ID

解决方案:给基础字符串及别名批量分配对应ID

一、公式方案(无需脚本,快速实现)

核心思路是先提取D列文本中的基础字符串(去除括号及括号内的内容),再匹配B列的基础字符串,返回对应的ID。

假设表格结构:

  • A列:基础字符串对应的ID
  • B列:基础字符串(B2:B6)
  • D列:待处理的基础字符串或别名(D2:D21)
  • E列:输出分配后的ID(E2:E21)

在E2单元格输入以下数组公式,批量处理整范围:

=ARRAYFORMULA(IF(D2:D21="", "", XLOOKUP(REGEXREPLACE(D2:D21, "\s*\(.*\)", ""), B2:B6, A2:A6, "未找到")))

公式说明:

  • ARRAYFORMULA:一次性处理整列/范围,无需手动下拉填充
  • REGEXREPLACE(D2:D21, "\s*\(.*\)", ""):正则匹配并去除括号及括号前的空格,提取基础字符串(例如将BYTE (VAR 1)转为BYTE)
  • XLOOKUP:用提取的基础字符串匹配B列的基础值,返回对应A列的ID;匹配失败时显示未找到

调整说明:

  • 若ID列不是A列,将公式中的A2:A6替换为实际ID列范围
  • 若需处理整列而非固定范围,将D2:D21、B2:B6、A2:A6改为D2:D、B2:B、A2:A即可

二、Google Apps Script方案(适合复杂场景)

如果别名格式多变,或需要自动触发更新,可使用脚本实现更灵活的处理:

  1. 打开Google表格,点击「扩展程序」→「Apps Script」
  2. 删除默认代码,粘贴以下脚本:
function assignIDs() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  // 读取基础字符串与ID的映射数据(A列ID,B列基础字符串)
  const baseRange = sheet.getRange("A2:B6");
  const baseData = baseRange.getValues();
  
  // 构建基础字符串到ID的映射对象
  const idMapping = {};
  baseData.forEach(row => {
    const baseStr = row[1]?.trim();
    if (baseStr) {
      idMapping[baseStr] = row[0];
    }
  });

  // 读取待处理的D列数据
  const targetRange = sheet.getRange("D2:D21");
  const targetValues = targetRange.getValues();
  
  // 生成对应ID数组
  const result = targetValues.map(row => {
    if (!row[0]) return [""];
    // 提取基础字符串,兼容多种括号格式
    const cleanBaseStr = row[0].replace(/\s*\(.*?\)/, "").trim();
    return [idMapping[cleanBaseStr] || "未找到"];
  });

  // 将结果写入E列
  sheet.getRange("E2:E21").setValues(result);
}

使用说明:

  • 修改范围:若需处理整列,将"A2:B6"、"D2:D21"、"E2:E21"改为对应整列范围(例如"A2:B")
  • 运行脚本:保存项目后点击运行按钮,完成权限授权即可自动分配ID
  • 自动更新:可在Apps Script中设置「 onChange 」触发器,实现表格内容变化时自动执行分配逻辑

扩展调整:

  • 若别名用方括号,可修改正则表达式为/\s*\[[^\]]*\]/
  • 若需区分大小写匹配,直接用原始字符串匹配即可(当前脚本默认不区分,依赖原始字符串一致)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 12:55:33