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

如何在Google Sheets中合并列数不同、存在重复列的多张表格?

解决方法

方法1:内置函数动态合并(无需脚本)

不需要手动为每个表补空列对齐,只用一个公式就能自动完成多表列对齐+合并,支持任意数量的表格:

  1. 首先生成全量总表头,公式:
    =UNIQUE(TOROW({表1!1:1,表2!1:1,表3!1:1},1))
    公式会自动提取所有表的表头,去重后生成合并后的全量表头,新增表格只需要在大括号里追加对应表的首行范围即可。

  2. 自动对齐所有表的数据并合并,公式:

=LET(
  // 第一步生成的总表头范围,可直接替换成上面的UNIQUE公式
  full_header, A1:E1,
  // 所有要合并的表的完整范围,新增表直接追加到大括号内即可
  table_list, {表1!A:D,表2!F:H,表3!J:L},
  // 逐表处理:匹配总表头,缺失列自动补空
  processed, REDUCE("", SEQUENCE(COUNTA(table_list)/COLUMNS(table_list)), LAMBDA(acc,idx,
    LET(
      current_table, INDEX(table_list,idx),
      current_header, INDEX(current_table,1),
      current_data, OFFSET(current_table,1,0,ROWS(current_table)-1),
      aligned, BYCOL(full_header, LAMBDA(h,XLOOKUP(h,current_header,current_data,""))),
      IF(acc="", aligned, VSTACK(acc,aligned))
    )
  )),
  // 拼接表头+过滤全空行输出结果
  final_res, VSTACK(full_header, FILTER(processed, BYROW(processed, LAMBDA(r,COUNTA(r)>0)))),
  final_res
)

方法2:自定义函数批量处理

如果需要频繁合并多表,可以自定义复用函数,操作步骤:

  1. 点击Google Sheets顶部菜单栏「扩展功能」->「Apps脚本」
  2. 粘贴以下代码保存后,回到表格就能直接使用=MERGE_TABLES(表1范围, 表2范围, 表3范围...)
function MERGE_TABLES(...tables) {
  // 提取所有表头去重
  const headers = [...new Set(tables.flatMap(t => t[0].filter(h => h)))];
  const result = [headers];
  // 逐表处理对齐
  tables.forEach(table => {
    const tHeader = table[0];
    const colMap = headers.map(h => tHeader.indexOf(h));
    // 逐行匹配
    for (let i = 1; i < table.length; i++) {
      if (table[i].every(v => !v)) continue;
      const row = colMap.map(idx => idx >= 0 ? table[i][idx] : "");
      result.push(row);
    }
  })
  return result;
}

注意事项

  • 所有待合并表的第一行必须为表头,表头名称完全一致才会被合并到同一列
  • 表头大小写敏感,注意保持不同表中相同含义的列名称完全相同
  • 新增待合并表只需要在公式参数里追加对应范围即可,不需要手动调整列对齐逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 05:39:05