如何基于T1的唯一ID为T2批量填充对应ID?支持多工具实现
为T2填充对应T1中ID的可行方法
数据表说明
表T1
| ID | Name | Age |
|---|---|---|
| 1 | aaa | 23 |
| 2 | bbb | 21 |
| 3 | ccc | 25 |
| 4 | ddd | 20 |
表T2
| ID | Name | Age | Phone |
|---|---|---|---|
| aaa | 23 | 0000 | |
| bbb | 21 | 1111 | |
| ccc | 28 | 2222 | |
| ddd | 29 | 3333 |
注:T1的ID为唯一值,T2的ID字段为空,两张表Name顺序可能不一致,数据量约3000条。
方法一:Microsoft Excel
- VLOOKUP函数法:
- 假设T1在Sheet1,T2在Sheet2,以Name作为匹配依据(需确保Name无重复)。
- 在Sheet2的ID列第一个空白单元格(如A2)输入公式:
=VLOOKUP(B2, Sheet1!$B$2:$C$5, 2, FALSE)- 说明:
B2是T2当前行的Name值,Sheet1!$B$2:$C$5是T1的Name和ID区域(需根据实际数据范围调整,建议用绝对引用),2表示返回区域的第2列(即ID),FALSE表示精确匹配。
- 说明:
- 下拉公式填充所有行即可完成批量匹配。
- XLOOKUP函数法(Excel 365及以上版本):
公式更简洁直观:=XLOOKUP(B2, Sheet1!$B:$B, Sheet1!$A:$A)- 说明:
B2是T2的Name值,Sheet1!$B:$B是T1的Name列,Sheet1!$A:$A是T1的ID列,自动执行精确匹配。
- 说明:
方法二:Microsoft Access
- 更新查询法:
- 将T1和T2导入Access数据库中。
- 创建更新查询:打开查询设计界面,添加T1和T2表,双击两张表的Name字段建立关联。
- 选中T2的ID字段,在「更新到」行输入:
[T1].[ID] - 运行查询,确认更新记录数无误后完成填充。
- 注意:需确保Name字段无重复值,否则可能出现匹配错误;运行前建议备份原始数据。
方法三:Python(基于Pandas库)
- 步骤如下:
- 若未安装Pandas,先执行安装命令:
pip install pandas - 编写代码实现批量匹配:
import pandas as pd # 读取T1和T2数据(支持Excel、CSV等格式,此处以Excel为例) df_t1 = pd.read_excel('t1_data.xlsx') df_t2 = pd.read_excel('t2_data.xlsx') # 以Name为键,将T1的ID映射到T2的ID列 df_t2['ID'] = df_t2['Name'].map(df_t1.set_index('Name')['ID']) # 保存更新后的T2数据 df_t2.to_excel('t2_updated.xlsx', index=False) - 说明:
map方法通过Name字段批量匹配T1中的ID值;若存在重复Name,会取最后一个匹配的ID,需提前确保Name的唯一性。
- 若未安装Pandas,先执行安装命令:
内容的提问来源于stack exchange,提问作者Raz
相关产品推荐
相关产品推荐

