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

如何为Excel多工作表中跨表同名数据创建统一ID列?

为多工作表中的姓名分配统一ID编号的操作方法

方法一:使用Excel函数(适合基础用户)

  • 步骤1:创建姓名-ID映射表
    新建空白工作表并命名为「姓名ID映射」,在A2单元格输入公式(假设三个问卷表分别为Sheet1、Sheet2、Sheet3,姓名列均为A列,需根据实际情况替换):

    =UNIQUE(VSTACK(Sheet1!A:A, Sheet2!A:A, Sheet3!A:A))
    

    该公式会自动合并三个表的所有姓名并去重,生成唯一姓名列表。如果是旧版Excel不支持VSTACK和UNIQUE,可以先手动复制三个表的姓名到同一列,再用「数据→删除重复值」功能去重。

  • 步骤2:生成统一ID
    在映射表的B2单元格输入1,B3输入2,下拉填充至所有姓名行,或直接输入公式=ROW()-1自动生成连续数字ID。

  • 步骤3:在各问卷表匹配ID
    回到任意问卷表(比如Sheet1),新增一列命名为「ID」,在该列的第一个数据单元格(比如B2)输入公式:

    =XLOOKUP(A2, '姓名ID映射'!A:A, '姓名ID映射'!B:B, "无匹配")
    

    下拉填充至所有行即可完成ID匹配。若旧版Excel无XLOOKUP,可改用VLOOKUP:

    =VLOOKUP(A2, '姓名ID映射'!A:B, 2, FALSE)
    

    注意:使用VLOOKUP时,映射表的姓名列必须在ID列左侧

  • 额外处理:统一姓名格式
    若存在姓名大小写、首尾空格导致的识别误差,可在映射表和匹配时加入格式统一公式,比如映射表A2改为:

    =UNIQUE(VSTACK(TRIM(LOWER(Sheet1!A:A)), TRIM(LOWER(Sheet2!A:A)), TRIM(LOWER(Sheet3!A:A))))
    

    匹配公式改为:

    =XLOOKUP(TRIM(LOWER(A2)), '姓名ID映射'!A:A, '姓名ID映射'!B:B, "无匹配")
    

方法二:使用Power Query(适合批量处理、数据量大的场景)

  • 步骤1:导入所有工作表数据
    点击「数据」选项卡→「获取数据」→「自文件」→「自工作簿」,选择当前Excel文件,在弹出的导航器中勾选三个问卷工作表,点击「加载到」→选择「仅创建连接」,点击确定。

  • 步骤2:创建姓名-ID映射查询
    点击「数据」选项卡→「获取数据」→「合并查询」→「将查询合并为新查询」→选择「追加查询」,将三个工作表的查询全部添加到追加列表,点击确定。
    在Power Query编辑器中,选中姓名列→点击「转换」选项卡→「删除重复项」,得到唯一姓名列表。
    点击「添加列」选项卡→「索引列」→「从1开始」,自动生成连续ID列,最后关闭并上载该查询(可选择加载到新工作表作为映射表)。

  • 步骤3:为各问卷表匹配ID
    分别打开每个问卷表的Power Query连接(数据选项卡→现有连接→选择对应工作表查询),在编辑器中点击「添加列」→「合并查询」,选择当前表的姓名列,与映射表的姓名列建立关联,展开合并后的列,只保留ID字段。
    关闭并上载查询,选择「替换当前工作表」即可完成ID批量添加。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 12:15:55