VLOOKUP 与 XLOOKUP 速查对照
两个最高频的查找函数,语法、差异、常见错误一次对齐。看完直接在互动练习里各写一题。
语法对照
VLOOKUP(所有版本)
=VLOOKUP(key, table, col, FALSE) key:要在第一列找的值 · table:含键值与结果的表格 · col:结果在表格内第几列 · FALSE:精确匹配
XLOOKUP(Excel 2021+/365)
=XLOOKUP(key, lookup_array, return_array) key:要找的值 · lookup_array:键值所在列 · return_array:结果所在列(可左可右)
行为差异对照
| 特性 | VLOOKUP | XLOOKUP |
|---|---|---|
| 查找方向 | 只能从左往右 | 任意方向(可向左) |
| 返回列 | 用列索引(第几列) | 直接指定返回区域 |
| 默认匹配 | 近似匹配(精确要写 FALSE) | 精确匹配 |
| 表格插入新列 | 索引可能错位、结果跑偏 | 不受影响 |
| 查无数据 | 返回 #N/A | 可用第 4 参数 if_not_found 直接给兜底值 |
| 版本 | 所有版本 | Excel 2021+/365、Google Sheets |
常见错误与修法
| 症状 | 原因 | 解法 |
|---|---|---|
#N/A | 键值不存在,或区域没锁定导致向下填充时偏移 | 确认数据确实存在;填充时用 $ 锁定表格;再用 IFNA/IFERROR 给兜底值 |
返回了错误行的值 | 漏了 FALSE,落在近似匹配 | VLOOKUP 最后统一补 FALSE(XLOOKUP 默认就是精确) |
返回 #REF! | 列索引超过表格区域的列数 | 索引从表格第一列起算,别用工作表的列号 |
填充后结果整批错 | 相对引用让查找区域一起滑动 | 源表格用 $A$2:$C$6 锁定,只让 key 相对滑动 |
动手写一题
两个函数在练习大厅各有一题:锁定小表格、即时判分,写对才会过。
常见问题
VLOOKUP 和 XLOOKUP 该用哪一个?
版本支持且要向左查找时,选 XLOOKUP:不需列索引、默认精确匹配、插入列不会坏。旧版 Excel 或要兼容他人文件时用 VLOOKUP,记得最后参数写 FALSE。
VLOOKUP 查不到返回 #N/A 怎么办?
包一层 =IFNA(VLOOKUP(…), "Not found") 只拦截查无数据;IFERROR 则会盖掉所有错误。把兜底文本换成有意义的提示比留着 #N/A 好。
XLOOKUP 可以取代 INDEX+MATCH 吗?
功能上可以:=XLOOKUP(E2, C2:C6, A2:A6) 等价于 =INDEX(A2:A6, MATCH(E2, C2:C6, 0))。但面试仍常考 INDEX+MATCH,建议两种都会写。