You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

跨两工作表用VLOOKUP匹配员工姓名并填充历史员工ID技术问询

跨工作表匹配姓名并填充Employee_ID的解决方案

嘿,我刚处理过几乎一模一样的需求,给你两套实用方案,直接就能上手帮你把工作表2的Employee_ID对应到工作表1的A列:

方案1:用VLOOKUP(需要辅助列,适合新手)

第一步:先做匹配用的合并姓名键

因为VLOOKUP只能用单个值检索,所以我们得把两个姓名列合并成一个匹配键,还得处理掉可能的空格避免匹配失败:

  • 在工作表1找个空白列(比如E列),在E2单元格输入:=TRIM(C2)&TRIM(D2),下拉填充所有行,这样就把C列(First_Name)和D列(Last_Name)合并成了无空格的字符串。
  • 同样在工作表2找个空白列(比如H列),在H2单元格输入:=TRIM(E2)&TRIM(G2),下拉填充,把规范化后的姓名也合并好。

第二步:编写VLOOKUP公式

假设工作表2的Employee_ID在F列(你根据自己的实际列调整就行),在工作表1的A2单元格输入:

=IFERROR(VLOOKUP(E2, Sheet2!$H:$F, 2, FALSE), "无匹配ID")

然后下拉填充到所有行就行。

参数说明:

  • E2:就是我们刚做的工作表1合并姓名键
  • Sheet2!$H:$F:查找范围,必须保证合并姓名的H列在最左边,Employee_ID的F列在第二列(如果你的Employee_ID在其他列,比如I列,就改成Sheet2!$H:$I
  • FALSE:表示精确匹配,避免模糊匹配出错误结果
  • IFERROR:用来处理匹配不到的情况,显示“无匹配ID”而不是扎眼的#N/A错误

方案2:用INDEX+MATCH(无需辅助列,更灵活)

如果不想加辅助列,直接用INDEX+MATCH组合更方便,不用调整列的顺序:
在工作表1的A2单元格输入公式(把Sheet2!$F:$F换成你实际的Employee_ID列):

=IFERROR(INDEX(Sheet2!$F:$F, MATCH(TRIM(C2)&TRIM(D2), TRIM(Sheet2!$E:$E)&TRIM(Sheet2!$G:$G), 0)), "无匹配ID")

下拉填充就搞定了。

这个公式的逻辑是:先用TRIM(C2)&TRIM(D2)生成工作表1的姓名键,然后在工作表2的TRIM(E2)&TRIM(G2)姓名键里找完全匹配的位置,最后用INDEX取出对应的Employee_ID。


额外小提示

  • 如果你的Excel是365/2021版本,还可以用更简洁的XLOOKUP:
=IFERROR(XLOOKUP(TRIM(C2)&TRIM(D2), TRIM(Sheet2!$E:$E)&TRIM(Sheet2!$G:$G), Sheet2!$F:$F), "无匹配ID")
  • 要是有同名的员工,这个方案会匹配到第一个符合条件的ID,这时候你得加额外的匹配条件(比如部门、邮箱),把合并键改成TRIM(C2)&TRIM(D2)&TRIM(部门列)这类的就行。

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

火山引擎 最新活动