VLOOKUP 适合解决一个非常具体的问题:根据左侧第一列中的编号,在同一行返回右侧某一列的结果。下面使用客户编号查找客户名称,公式、数据区域和预期结果都可以在配套工作簿中直接验证。
Excel 查找匹配练习工作簿包含 7 个工作表、14 个公式与排错清单,示例数据均为虚构数据。
下载 .xlsx 文件先看可以直接使用的公式
假设当前表 A2 是客户编号,客户表的 A 列到 F 列依次是编号、区域、城市、名称、等级和金额,要返回第 4 列的客户名称,可输入:
=VLOOKUP(A2,客户表!$A$2:$F$11,4,FALSE)
按 Enter 后,如果 A2 为 C003,结果应是“新桥咨询”。第四个参数使用 FALSE,表示必须精确匹配编号。
四个参数分别控制什么
| 参数 | 本例内容 | 作用 |
|---|---|---|
| 查找值 | A2 | 当前要寻找的客户编号 |
| 数据区域 | 客户表!$A$2:$F$11 | 编号必须位于区域第一列 |
| 列序号 | 4 | 从区域第一列开始计数,返回第 4 列 |
| 匹配方式 | FALSE | 只接受完全相同的编号 |
跨表查找的操作步骤
- 在结果单元格输入
=VLOOKUP(。 - 单击当前行的客户编号 A2,然后输入逗号。
- 切换到“客户表”,选中 A2:F11,并按 F4 将引用锁定为绝对引用。
- 输入列序号 4,再输入
FALSE和右括号。 - 确认首行结果正确后,再向下填充公式。
为什么要按 F4?
向下复制公式时,A2 应变为 A3、A4,但客户表的数据区域不应移动。锁定后的 $A$2:$F$11 会保持不变。
未找到时显示友好提示
旧版 Excel 可以用 IFERROR 包住 VLOOKUP,避免直接显示 #N/A:
=IFERROR(VLOOKUP(A2,客户表!$A$2:$F$11,4,FALSE),"未找到")
IFERROR 会隐藏所有错误,因此正式表格仍应先检查编号是否存在、数据类型是否一致,再决定是否使用提示文字。
结果不对时优先检查
- 第四个参数是否遗漏。省略后可能执行近似匹配,返回看似正常但实际错误的结果。
- 编号列是否位于数据区域第一列。VLOOKUP 不能直接向左返回。
- 列序号是否与区域一致。删除或插入列后,要重新核对序号。
- 文本编号和数字编号是否混用,例如文本“001”和数字 1 并不相同。
完成后的验证方法
不要只看第一行。至少选择一个首行编号、一个末行编号和一个不存在的编号测试;再随机抽取两行,与客户表原始数据逐项比对。批量填充前保留原文件副本。
参考资料
- Microsoft Excel 函数说明:VLOOKUP 函数的语法和精确匹配参数。
- 配套工作簿:VLOOKUP练习、客户表和排错清单工作表。