在 Excel 中,如果要从一个表格中匹配另一个表格的数据,可以使用以下几种方法,具体取决于你的需求(如精确匹配、模糊匹配、多条件匹配等)。
✅ 一、精确匹配(VLOOKUP 或 MATCH)
方法 1:VLOOKUP(查找并返回值)
=VLOOKUP(查找值, 查找范围, 列号, [FALSE])
示例:
| A列(查找值) | B列(查找范围) | C列(返回值) |
|---|---|---|
| 100 | B1:B10 | 50 |
公式:
=VLOOKUP(A2, B2:B10, 2, FALSE)
说明:
A2是你要查找的值;B2:B10是查找范围(第一列是查找值,第二列是返回值);2是返回值所在的列号;FALSE表示精确匹配。
方法 2:MATCH + INDEX(更灵活)
=INDEX(查找范围, MATCH(查找值, 查找范围, 0))
示例:
=INDEX(B2:B10, MATCH(A2, B2:B10, 0))
说明:
MATCH(A2, B2:B10, 0)找到A2在B2:B10中的位置;INDEX返回该位置对应的值。
✅ 二、模糊匹配(SEARCH 或 FIND)
方法 1:SEARCH(查找包含某字符串的单元格)
=SEARCH(查找值, 查找范围)
示例:
=SEARCH("Apple", B2:B10)
说明:
- 如果返回
FALSE,表示没有找到; - 如果返回
TRUE,表示找到了。
方法 2:FIND(适用于文本匹配)
=FIND(查找值, 查找范围)
说明:
- 与
SEARCH类似,但只适用于查找字符位置。
✅ 三、多条件匹配(FILTER 或 INDEX + MATCH)
方法 1:FILTER(Excel 365 或 Excel 2021)
=FILTER(返回值列, 条件列)
示例:
=FILTER(C2:C10, (A2:A10="100")*(B2:B10="50"))
说明:
A2:A10="100"是第一个条件;B2:B10="50"是第二个条件;*是逻辑“与”运算符;FILTER会返回满足所有条件的值。
✅ 四、使用 VLOOKUP 与 IF 结合(判断是否存在)
=IF(ISNUMBER(VLOOKUP(查找值, 查找范围, 列号, FALSE)), "存在", "不存在")
✅ 五、使用 INDEX 和 MATCH(更灵活)
=INDEX(查找范围, MATCH(查找值, 查找范围, 0))
✅ 总结表格
| 方法 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| VLOOKUP | 精确匹配 | 简单易用 | 不能横向查找 |
| MATCH + INDEX | 精确匹配 | 更灵活 | 需要列号 |
| SEARCH/FIND | 模糊匹配 | 更灵活 | 无法判断是否找到 |
| FILTER | 多条件匹配 | 强大 | 需要 Excel 365 |
| INDEX + MATCH | 精确匹配 | 更灵活 | 需要列号 |