EP10. “Two-column Lookup 双列查找”
🔒 登录后可标记已读- 讲怎么用两个条件(比如姓+名)一起去查找,而不是只靠单一条件
- 避免因为姓名重复导致查错人
- 前置知识需要先看过 EP03 的 INDEX+MATCH
- 学完能处理「单一条件查找会有歧义」的场景,比如同名同姓但不同人
重点内容
示例场景
表格里有几个人共用同一个名字 "James"(比如 James Smith、James Anderson、James Clark),只用名字 "James" 去查会有歧义,需要同时比对姓和名两个条件才能准确定位到 James Clark。
[截图:含重复名字 "James" 的示例名单表格,标出三个同名但不同姓的行,说明单条件查找为何会出歧义]
方法怎么选
| 方法 | 适合场景 | 备注 |
|---|---|---|
& 拼接 + INDEX/MATCH 数组公式 | 旧版本 Excel | 要按 Ctrl + Shift + Enter 确认 |
| XLOOKUP | Excel 365 / 2021 | 多条件查找写法更简洁,见 EP13 |
操作步骤
- 用
&运算符把两列拼接成一列:把名字列和姓氏列合并成一个完整字符串数组,比如:
{"JamesSmith";"JamesAnderson";"JamesClark";"JohnLewis";"JohnWalker";"MarkReed";"RichardLopez"}
- 用 MATCH 在拼接结果里查找完整姓名:
=MATCH("JamesClark",A2:A8&B2:B8,0)
在拼接数组里查找 "JamesClark",结果返回位置 3。
- 按
Ctrl + Shift + Enter确认成数组公式——公式栏会自动出现花括号{},代表这是数组公式。 - 用 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: