一、使用VLOOKUP函数实现匹配
数据准备 确保员工编号列(如Sheet1的A列)和姓名列(如Sheet1的B列)数据格式一致且唯一。
示例数据:
```
Sheet1(员工编号) | Sheet1(姓名) |
001 | 张三 |
002 | 李四 |
003 | 王五 |
```
输入VLOOKUP公式
在目标单元格(如Sheet2的B2)输入公式:`=VLOOKUP(A2,Sheet1!A:B,2,FALSE)`
`A2`:需要匹配的员工编号
`Sheet1!A:B`:查找区域(编号列和姓名列)
`2`:返回姓名所在的列号
`FALSE`:精确匹配。
按回车后,公式会自动填充对应编号的姓名。
二、使用VBA宏实现跨表匹配
适用于数据量较大或需要频繁更新的情况:
数据准备
同样需要两张表:
Sheet1(员工编号):A列
Sheet2(员工姓名):A列
确保编号唯一且格式一致。
编写VBA代码
按 `Alt + F11` 进入VBA编辑器,插入模块并输入以下代码:
```vba
Sub MatchDataAcrossSheets()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim lastRow1 As Long
Dim lastRow2 As Long
Dim i As Long
' 设置工作表
Set ws1 = ThisWorkbook.Sheets("Sheet1")
Set ws2 = ThisWorkbook.Sheets("Sheet2")
' 获取最后一行
lastRow1 = ws1.Cells(ws1.Rows.Count, 1).End(xlUp).Row
lastRow2 = ws2.Cells(ws2.Rows.Count, 1).End(xlUp).Row
' 循环匹配
For i = 2 To lastRow2
If IsError(VLOOKUP(ws2.Cells(i, 1), ws1!A:B, 2, 0)) Then
ws2.Cells(i, 2).Value = ""
Else
ws2.Cells(i, 2).Value = VLOOKUP(ws2.Cells(i, 1), ws1!A:B, 2, 0)
End If
Next i
End Sub
```
运行宏后,Sheet2的B列将显示与A列编号对应的姓名。
注意事项
数据一致性: 确保员工编号在两张表中完全一致,避免因格式或内容差异导致匹配失败。- 性能优化
通过以上方法,您可以灵活实现员工编号与姓名的匹配,根据需求选择Excel函数或VBA宏。