谷歌表格:如何用INDEXMATCH/VLOOKUP匹配邮箱添加D-Number
匹配Sheet2的D-Number到Sheet1对应行
问题背景
Sheet1是Canvas自动生成的数百条学生考试数据,包含姓名、邮箱、成绩等字段;Sheet2存着姓名、邮箱和唯一标识D-Number。需要把Sheet2里和Sheet1邮箱匹配的D-Number,加到Sheet1对应行里,之前试了INDEXMATCH和VLOOKUP,没做到精准匹配。
解决方案
方法1:使用VLOOKUP函数
在Sheet1中需要显示D-Number的空白列(比如第D列)的第一个数据行(假设是D2)输入以下公式:
=VLOOKUP(B2, Sheet2!$B:$C, 2, FALSE)
- 细节说明:
B2:Sheet1当前行的邮箱单元格(根据实际列位置调整)Sheet2!$B:$C:锁定Sheet2中包含邮箱和D-Number的列范围,下拉填充时不会偏移范围2:返回Sheet2该范围里的第2列(也就是D-Number所在列)FALSE:强制精确匹配,这是之前可能遗漏的关键参数
输入后按回车,下拉填充整列即可。
方法2:使用INDEX+MATCH函数
如果更习惯用INDEXMATCH组合,在Sheet1目标列的D2单元格输入:
=INDEX(Sheet2!$C:$C, MATCH(B2, Sheet2!$B:$B, 0))
- 细节说明:
MATCH(B2, Sheet2!$B:$B, 0):在Sheet2的邮箱列里精确匹配Sheet1当前行的邮箱,返回对应行号INDEX(Sheet2!$C:$C, ...):根据返回的行号,提取Sheet2对应行的D-Number
同样下拉填充整列即可。
注意事项
- 确保两个Sheet里的邮箱格式完全一致(无多余空格、大小写统一;如果有大小写差异,可嵌套
LOWER()函数,比如VLOOKUP(LOWER(B2), Sheet2!$B:$C, 2, FALSE),同时把Sheet2的邮箱列也统一转成小写) - 若Sheet2存在重复邮箱,上述公式会返回第一个匹配的D-Number;需要处理重复项的话,先清理Sheet2里的重复邮箱数据
内容的提问来源于stack exchange,提问作者user1956454
相关产品推荐
相关产品推荐

