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

Google Sheets按首个文本字符拆分列为单位与产品名称实现方案

Google Sheets批量拆分单位与产品名称列脚本方案

需求说明

  • 日常需批量处理200+行单列数据,需拆分为「单位」「产品名称」两列,拆分后产品名称列不得残留前置多余空格
  • 原Excel固定列宽拆分可实现理想效果,需适配Google Sheets环境直接操作
  • 原有固定宽度拆分脚本按固定字符数截取,部分行拆分后存在多余空格,需调整截取逻辑:从产品名称段第一个有效文字字符位置开始截取,跳过中间所有空格

拆分效果参考

拆分效果示例1
拆分效果示例2

可直接使用的修正脚本

function splitUnitAndProduct() {
  const activeSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  // 数据起始行,无表头填1,有表头按表头所在行下一行填
  const dataStartRow = 2;
  const lastDataRow = activeSheet.getLastRow();
  const sourceData = activeSheet.getRange(dataStartRow, 1, lastDataRow - dataStartRow + 1, 1).getValues();
  const splitResult = [];

  for (let i = 0; i < sourceData.length; i++) {
    const rawStr = sourceData[i][0].toString();
    if (!rawStr.trim()) {
      splitResult.push(["", ""]);
      continue;
    }
    // 取首位字符作为单位
    const unitVal = rawStr.substring(0, 1).trim();
    // 截取首位之后的内容,自动定位第一个有效中/英文字符位置,跳过所有前置空格
    const restContent = rawStr.substring(1);
    const firstValidCharPos = restContent.search(/[\u4e00-\u9fa5a-zA-Z]/);
    const productNameVal = firstValidCharPos >= 0 ? restContent.substring(firstValidCharPos).trim() : "";
    splitResult.push([unitVal, productNameVal]);
  }
  // 拆分结果从B列开始写入,不覆盖原A列数据
  activeSheet.getRange(dataStartRow, 2, splitResult.length, 2).setValues(splitResult);
}

使用方法

  • 打开要处理的Google表格,点顶部「扩展程序」-「Apps Script」进脚本编辑器
  • 把编辑器里默认的空代码全删掉,粘贴上面的脚本点保存
  • 第一次运行会弹授权提示,按步骤给脚本开表格访问权限就行,授权完再点一次运行就自动批量拆分完了
  • 脚本不会覆盖你原来A列的原始数据,拆出来的单位会写到B列、产品名写到C列;如果你的数据没有表头,把代码里dataStartRow的值改成1即可
  • 脚本自动识别有效字符位置,不会像固定宽度拆分那样残留前置空格,处理数百行数据几秒钟就能跑完

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 05:01:01