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

如何批量处理Google Sheets多工作表B列并合并工作表数据?

解决方案

快速处理:为所有工作表B列添加后缀", "

通过Google Apps Script批量完成:

  1. 打开目标Google表格,点击顶部菜单栏「扩展程序」→「Apps Script」。
  2. 删除编辑器内默认代码,粘贴以下脚本:
function addSuffixToColumnB() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheets = ss.getSheets();
  
  sheets.forEach(sheet => {
    const range = sheet.getRange("B:B");
    const values = range.getValues();
    
    const updatedValues = values.map(row => {
      const cellValue = row[0];
      return cellValue ? [cellValue + ", "] : [""];
    });
    
    range.setValues(updatedValues);
  });
  
  SpreadsheetApp.getUi().alert("后缀添加完成!");
}
  1. 点击「运行」按钮,首次运行需按提示完成授权操作。

更优方案:合并所有工作表并添加表头区分

以下脚本会新建「合并结果」工作表,自动将所有工作表的B列数据合并,每个数据集以原工作表名称为加粗表头,数据集间用空行分隔(同时自动添加", "后缀):

  1. 打开Apps Script编辑器,粘贴以下脚本:
function mergeSheetsWithHeaders() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheets = ss.getSheets();
  const targetSheet = ss.insertSheet("合并结果");
  
  let rowIndex = 1;
  
  sheets.forEach(sheet => {
    const sheetName = sheet.getName();
    // 写入加粗的工作表名称作为表头
    targetSheet.getRange(rowIndex, 1).setValue(`*${sheetName}*`).setFontWeight("bold");
    rowIndex++;
    
    // 过滤并格式化B列非空数据
    const dataRange = sheet.getRange("B1:B").getValues().filter(row => row[0] !== "");
    const formattedData = dataRange.map(row => [row[0] + ", "]);
    
    if (formattedData.length > 0) {
      targetSheet.getRange(rowIndex, 1, formattedData.length, 1).setValues(formattedData);
      rowIndex += formattedData.length + 1; // 空行分隔不同数据集
    }
  });
  
  SpreadsheetApp.getUi().alert("合并完成!结果已保存至「合并结果」工作表。");
}
  1. 点击「运行」,完成授权后即可执行。

注意事项

  • 脚本会自动跳过B列空单元格,避免无效数据混入。
  • 若「合并结果」工作表已存在,需先删除再运行脚本。
  • 操作前建议备份原表格,防止意外数据变更。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 23:15:34