一、使用VLOOKUP函数(适用于单表数据匹配)
数据准备 假设姓名在Sheet2的B列,学号在Sheet1的A列,且姓名与学号完全匹配。
公式应用
在Sheet1的B2单元格输入公式:
```excel
=VLOOKUP(A2, Sheet2!B:B, 2, 0)
```
参数说明:
- `A2`:查找值(学号)
- `Sheet2!B:B`:查找范围
- `2`:返回第二列数据(姓名)
- `0`:精确匹配。
批量填充
将B2单元格右下角拖至所需行数,自动填充姓名。
二、使用INDEX+MATCH组合(灵活匹配)
数据准备
假设姓名在Sheet2的B列,数据从B2开始。
公式应用
在Sheet1的B2单元格输入公式:
```excel
=INDEX(Sheet2!B:B, MATCH(A2, Sheet2!A:A, 0))
```
参数说明:
- `INDEX`:返回指定位置的值
- `MATCH`:查找学号并返回相对位置
- `0`:精确匹配。
处理乱码姓名
若姓名包含乱码,可用以下公式判断是否存在:
```excel
=IF(ISNUMBER(MATCH(A2, Sheet2!A:A, 0)), Sheet2!B:B, "")
```
通过IF函数判断姓名是否存在于Sheet2中。
三、使用Power Query(适用于多表数据合并)
数据导入
将多个Excel文件通过“数据”→“获取数据”→“从文件夹”导入到Power Query。
数据整合
使用Power Query的“合并查询”功能,按学号或姓名字段进行关联。
结果导出
合并后可直接导出为新的Excel文件,或更新源数据后刷新。
四、使用宏表函数(适用于动态更新)
定义名称
在Excel中按`Ctrl+F3`定义名称`getWorkbook(1)`,引用当前工作簿。
公式应用
在目标单元格输入:
```excel
=MID(INDEX(getWorkbook(1), FIND("]", INDEX(getWorkbook(1), ROW(A1))), FIND(" ", INDEX(getWorkbook(1), ROW(A1)))+1, 99)
```
该公式可批量提取所有工作表名称。
注意事项
- 需将文件保存为`.xlsm`格式以支持宏表函数。
五、注意事项
数据规范: 建议将姓名与电话等敏感信息分列存储,便于提取。 性能优化
以上方法可根据数据规模和复杂度灵活选择,单表小数据量推荐VLOOKUP或INDEX+MATCH,多表或动态数据建议Power Query或VBA。