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

如何用Google Apps Script拆分Google Sheets单元格值并复制整行

问题

需要使用Google Apps Script实现:将Google Sheets中指定单元格的值按分隔符拆分为多个部分,每个拆分结果对应复制整行数据,替换拆分后的内容。示例如下:

输入表格

姓名国家运动项目
JohnUSABasketball_Golf_Tennis
MaryCanadaTennis_Golf

期望输出表格

姓名国家运动项目
JohnUSABasketball
JohnUSAGolf
JohnUSATennis
MaryCanadaTennis
MaryCanadaGolf

本例分隔符为_。

解决方案

核心是使用JavaScript的split()方法拆分单元格字符串,结合Google Apps Script的表格操作API完成行复制。以下是完整实现脚本:

function splitAndDuplicateRows() {
  // 获取当前活动工作表
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  // 获取所有数据(包含表头)
  const data = sheet.getDataRange().getValues();
  const header = data[0];
  const processedData = [header]; // 初始化结果数组,保留表头

  // 遍历所有数据行(跳过表头)
  for (let i = 1; i < data.length; i++) {
    const originalRow = data[i];
    // 拆分目标列(此处为第三列,索引2)的值
    const splitItems = originalRow[2].split('_');
    
    // 为每个拆分结果生成新行
    splitItems.forEach(item => {
      const newRow = [...originalRow];
      newRow[2] = item.trim(); // 替换目标列内容,去除多余空格
      processedData.push(newRow);
    });
  }

  // 清空原表内容并写入处理后的数据
  sheet.clearContents();
  sheet.getRange(1, 1, processedData.length, processedData[0].length).setValues(processedData);
}

关键说明

  • split('_'):将目标单元格字符串按_拆分为数组,可根据需求替换为其他分隔符(如split(','))。
  • 列索引调整:如果需要拆分的列不是第三列,修改originalRow[2]中的数字(索引从0开始计数)。
  • 执行方式:在Google Sheets的「扩展程序」→「Apps脚本」中粘贴代码,保存后运行函数即可完成处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 07:45:29