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

Google Spreadsheet同ID多行合并(不同列结果)技术咨询

Google Sheets:合并相同ID的多行到对应列

需求说明

将ID列值一致的多行数据合并,把原各行的对应字段(如姓名、年龄)分配到合并后单行的不同列中(例如同一ID下的第1条数据对应姓名1、年龄1,第2条对应姓名2、年龄2)。


解决方案1:公式实现(适合小数据集)

假设源数据在A:C列(A=ID,B=姓名,C=年龄),合并结果从E列开始:

  1. 提取唯一ID
    在E2输入:
=UNIQUE(A2:A)

自动生成不重复的ID列表。

  1. 提取对应字段到多列
  • 提取第1条数据的姓名(F2):
=INDEX(FILTER(B:B, A:A=E2), 1)
  • 提取第1条数据的年龄(G2):
=INDEX(FILTER(C:C, A:A=E2), 1)
  • 提取第2条数据的姓名(H2):
=IFERROR(INDEX(FILTER(B:B, A:A=E2), 2), "")
  • 提取第2条数据的年龄(I2):
=IFERROR(INDEX(FILTER(C:C, A:A=E2), 2), "")

按需向下/向右填充公式,INDEX的第二个参数对应数据的序号,IFERROR用于处理无数据的情况,返回空值。

如果需要将同ID的字段用分隔符合并到同一列(如姓名用逗号分隔),可使用:

=TEXTJOIN(", ", TRUE, FILTER(B:B, A:A=E2))

解决方案2:Google Apps Script(适合大数据集)

用脚本自动生成结构化的合并结果:

  1. 打开工作表,点击「扩展程序」→「Apps 脚本」
  2. 替换默认代码为以下内容:
function mergeRowsByID() {
  const activeSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const allData = activeSheet.getDataRange().getValues();
  const headerRow = allData[0];
  const groupedData = {};
  
  // 按ID分组数据
  for (let i = 1; i < allData.length; i++) {
    const currentID = allData[i][0];
    if (!groupedData[currentID]) {
      groupedData[currentID] = [currentID];
    }
    // 添加姓名、年龄到分组
    groupedData[currentID].push(allData[i][1], allData[i][2]);
  }
  
  // 生成新表头
  const maxItems = Math.max(...Object.values(groupedData).map(row => (row.length - 1) / 2));
  const newHeader = ["ID"];
  for (let num = 1; num <= maxItems; num++) {
    newHeader.push(`姓名${num}`, `年龄${num}`);
  }
  
  // 整理输出数据,补全空值
  const outputData = [newHeader];
  Object.values(groupedData).forEach(row => {
    while (row.length < newHeader.length) {
      row.push("");
    }
    outputData.push(row);
  });
  
  // 创建新工作表并写入结果
  const resultSheet = SpreadsheetApp.getActiveSpreadsheet().insertSheet("合并结果");
  resultSheet.getRange(1, 1, outputData.length, outputData[0].length).setValues(outputData);
}
  1. 点击运行,授权后会自动生成名为「合并结果」的工作表,包含最终合并数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 23:30:39