MICROSOFT

EP10. “Two-column Lookup 双列查找”

首页 Microsoft 工具 Excel · Functions · Lookup & Reference · EP10
约 5 分钟· #EP10#Excel#Lookup & Reference
🔒 登录后可标记已读
  • 讲怎么用两个条件(比如姓+名)一起去查找,而不是只靠单一条件
  • 避免因为姓名重复导致查错人
  • 前置知识需要先看过 EP03 的 INDEX+MATCH
  • 学完能处理「单一条件查找会有歧义」的场景,比如同名同姓但不同人

重点内容


示例场景

表格里有几个人共用同一个名字 "James"(比如 James Smith、James Anderson、James Clark),只用名字 "James" 去查会有歧义,需要同时比对姓和名两个条件才能准确定位到 James Clark。

[截图:含重复名字 "James" 的示例名单表格,标出三个同名但不同姓的行,说明单条件查找为何会出歧义]


方法怎么选

方法适合场景备注
& 拼接 + INDEX/MATCH 数组公式旧版本 Excel要按 Ctrl + Shift + Enter 确认
XLOOKUPExcel 365 / 2021多条件查找写法更简洁,见 EP13

操作步骤

  1. & 运算符把两列拼接成一列:把名字列和姓氏列合并成一个完整字符串数组,比如:

{"JamesSmith";"JamesAnderson";"JamesClark";"JohnLewis";"JohnWalker";"MarkReed";"RichardLopez"}

  1. 用 MATCH 在拼接结果里查找完整姓名

=MATCH("JamesClark",A2:A8&B2:B8,0)

在拼接数组里查找 "JamesClark",结果返回位置 3。

  1. Ctrl + Shift + Enter 确认成数组公式——公式栏会自动出现花括号 {},代表这是数组公式。
  2. 用 INDEX 取出对应位置的薪资

=INDEX(C2:C8,MATCH("JamesClark",A2:A8&B2:B8,0))

从薪资范围 C2:C8 里,取出 MATCH 找到的第 3 个位置对应的值。


更简单的替代方案

Excel 365 或 Excel 2021 可以直接用 XLOOKUP 函数处理多条件查找,写法更简洁,见 EP13。


学完你会

  • ✅ 能用 & 把两列拼接成一个完整字符串数组,作为查找依据
  • ✅ 能用 MATCH + INDEX 数组公式做出双条件查找
  • ✅ 知道 Excel 365 / 2021 用 XLOOKUP 处理多条件查找会更简洁

常见错误

  • 忘记按 Ctrl + Shift + Enter 确认数组公式,导致 & 拼接的数组没有正确逐一比对,公式返回错误或只处理了第一项
  • 拼接两列时没注意中间要不要加分隔符(比如空格),姓名边界不清楚可能导致误判为匹配(比如 "James" + "Clark" 跟 "JamesC" + "lark" 拼接结果一样)
  • 表格数据本身有空格或大小写不一致,拼接后字符串对不上导致 MATCH 找不到结果

Sources

Blog / Website:

  1. Two-column Lookup