如何在Excel中基于姓名匹配自动填充日志表的ID字段?
Excel根据姓名匹配自动填充ID的常用公式
我熟悉基础Excel操作,但对复杂公式不太了解,现在需要在操作日志表的ID列,根据当前行的姓名,自动匹配员工列表里的对应ID并填充。两张表格的内容如下:
员工列表
A5 ID | A6 姓名 |
|---|---|
| 123 | Foo Bar |
| 321 | John Doe |
| 246 | Jane Doe |
| 135 | Mike Jones |
操作日志表
A1 ID | A2 姓名 | A3 操作 |
|---|---|---|
| Jane Doe | xxxxx | |
| John Doe | abcdefg | |
| Jane Doe | zzzzz | |
| Foo Bar | yyyyyyy |
1. VLOOKUP公式(兼容多数Excel版本)
这是最常用的匹配查找公式,新手能快速上手。假设日志表的第一个空白ID在单元格A2,输入以下公式:
=VLOOKUP(B2, $A$5:$B$8, 1, FALSE)
B2:当前行要匹配的姓名(日志表的姓名列)$A$5:$B$8:员工列表的完整数据范围,加$是为了下拉填充时范围不偏移1:要返回的列数(员工列表里ID是第1列)FALSE:要求精确匹配姓名,避免模糊匹配出错
输入回车后,下拉填充到所有需要的行即可。
2. XLOOKUP公式(适用于Excel 365/2021及以后版本)
这是VLOOKUP的升级版,参数逻辑更直观,不用纠结返回列的位置。同样在日志表A2单元格输入:
=XLOOKUP(B2, $B$5:$B$8, $A$5:$A$8)
B2:要匹配的目标姓名$B$5:$B$8:员工列表里的姓名列(匹配依据)$A$5:$A$8:员工列表里的ID列(要返回的内容)
默认就是精确匹配,下拉填充即可,比VLOOKUP更不容易出错。
3. INDEX+MATCH组合公式(兼容所有Excel版本)
这个组合灵活性更强,能避开VLOOKUP的一些局限。在日志表A2单元格输入:
=INDEX($A$5:$A$8, MATCH(B2, $B$5:$B$8, 0))
MATCH(B2, $B$5:$B$8, 0):先找到姓名在员工列表里的行号INDEX($A$5:$A$8, 行号):根据行号提取对应的ID
下拉填充后就能完成自动匹配。
内容的提问来源于stack exchange,提问作者Tyler Moen
相关产品推荐
相关产品推荐

