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

Google Sheets多单元格遍历匹配:按规则批量更新Column3值

Google Sheets 批量更新匹配行的Column3值

函数方案(适合临时手动处理)

直接在新列(比如D2单元格)输入以下公式,下拉填充后,再把D列的值复制粘贴回C列即可:

=IF(AND(LEFT(A2,4)="S006", B2="match_against"),
    CONCAT(REGEXEXTRACT(C2, "(.*_\D+)"), 1210 + IFERROR(VALUE(REGEXEXTRACT(A2, "_(\d+)")), 0)),
    C2)

公式拆解:

  • AND(LEFT(A2,4)="S006", B2="match_against"):筛选出Column1以S006开头且**Column2等于匹配标识match_against**的目标行
  • REGEXEXTRACT(C2, "(.*_\D+)"):提取Column3的固定前缀(比如CD12A_TPE),兼容不同长度的前缀格式
  • IFERROR(VALUE(REGEXEXTRACT(A2, "_(\d+)")), 0):从Column1中提取下划线后的数字,无下划线则默认取0
  • 1210 + ...:用初始末尾数字加上提取的后缀数字,得到更新后的末尾数
  • CONCAT(...):把前缀和新数字拼接成最终的Column3值
  • 不满足条件的行,直接保留原Column3值

如果你的匹配逻辑是Column1与Column2内容完全相等,只需把条件改成AND(LEFT(A2,4)="S006", A2=B2)即可。


Google Apps Script方案(适合批量自动化处理)

如果表格数据量大,或者需要重复执行更新,用脚本更高效:

  1. 打开你的Google Sheets,点击顶部菜单「扩展程序」→「Apps 脚本」
  2. 清空默认代码,粘贴以下脚本:
function updateColumn3() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const data = sheet.getDataRange().getValues();
  const matchFlag = "match_against"; // 替换为你的匹配标识
  const initialNumber = 1210;
  const prefix = "CD12A_TPE";

  data.forEach((row, index) => {
    const col1 = row[0]; // Column1对应A列
    const col2 = row[1]; // Column2对应B列
    if (index === 0) return; // 跳过表头行
    if (col1 && col1.startsWith("S006") && col2 === matchFlag) {
      // 提取Column1的后缀数字
      const suffixMatch = col1.match(/_(\d+)$/);
      const suffixNum = suffixMatch ? parseInt(suffixMatch[1]) : 0;
      // 更新Column3的值
      row[2] = `${prefix}${initialNumber + suffixNum}`; // Column3对应C列
    }
  });

  sheet.getDataRange().setValues(data);
}
  1. 修改脚本中的matchFlag为你的实际匹配标识,按需调整initialNumber和prefix
  2. 点击脚本编辑器顶部的「运行」按钮,授权后即可完成批量更新

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 02:15:50