查找拿一个值,在表格第一列里找到它,然后从同一行返回某个内容。只有它的假设成立时才可靠,所以好的答案要把假设写清楚。下面的表格和代码都是虚构的。
查找有哪些假设?
对于 =VLOOKUP(值, 表格, 列号, 匹配方式),你假设:
- 要找的值在表格的第一列。 这个函数从不往左找。
- 已写明匹配方式。
FALSE表示精确匹配。TRUE表示近似匹配,需要第一列已排序。 - 代码是唯一的。 两行代码相同,只会返回其中一行。
- 数据类型一致。 文字的
P02要对文字,数字要对数字。 - 表格范围已用美元符号锁定。
- 列号从表格自己的第一列开始数, 而不是从工作表的 A 列开始。
例题
F2:H4 中虚构的产品表:
| F | G | H | |
|---|---|---|---|
| 1 | 代码 | 物品 | 价格 |
| 2 | P01 | 笔 | 1.50 |
| 3 | P02 | 尺 | 2.25 |
| 4 | P03 | 笔记本 | 3.20 |
A2 里是代码 P03,B2 里是数量 6。
第 1 步,价格: 在 C2 输入 =VLOOKUP(A2,$F$2:$H$4,3,FALSE)。代码在第 4 行找到,表格第 3 列是价格,所以返回 3.20。
第 2 步,总价: 在 D2 输入 =B2*C2。核对:6 × 3.20 = 19.20。
第 3 步,往下复制。 A2 变成 A3,但 $F$2:$H$4 保持锁定,所以每一行都在同一张表里查找。
对于分段的数值,使用已排序的表和 TRUE。若两列的分段表是 0 Fail、50 Pass、70 Merit,62 分返回 Pass,因为 50 是不超过 62 的最大起点。
要留意的错误
错误公式:
=VLOOKUP(A2,$F$2:$H$4,2,FALSE)它运行时没有错误,但返回的是“笔记本”,而不是 3.20。第 2 列是物品名称。
列号是在表格内数的:代码是 1,物品是 2,价格是 3。把 2 改成 3 就对了。看似合理的错误答案最危险,所以要用眼睛把结果与表格对一对。另外要留意省略匹配方式:第一列没有排序时,默认的近似匹配可能返回毫不相关的行。
自我检测
先自己做,再打开每个答案。
1. =VLOOKUP("P01",$F$2:$H$4,2,FALSE) 返回什么?
显示答案
代码 P01 在第 2 行,第 2 列是物品。它返回笔。
2. =VLOOKUP("P04",$F$2:$H$4,3,FALSE) 返回什么?为什么?
显示答案
#N/A。 第一列里没有 P04,而精确匹配不会去猜。
3. 使用分段表(0 Fail、50 Pass、70 Merit)和近似匹配,49、50 和 70 分别返回什么?
显示答案
49 是 Fail,50 是 Pass,70 是 Merit。每个值返回起点是“不超过它的最大值”的那一段。
接下来学什么?
查找公式经常被复制,所以下一项技能是诊断复制到错误范围的公式。如果表格范围下滑了,请回顾绝对引用。ICT 实操任务与证据检查器可以快速检查已完成的任务。
如果你想让有经验的老师检查你在自己练习表上的查找假设,请看ICT 线上一对一补习。