![在 OpenOffice Calc 中使用 VLOOKUP 时出现意外行为](https://linux22.com/image/1512714/%E5%9C%A8%20OpenOffice%20Calc%20%E4%B8%AD%E4%BD%BF%E7%94%A8%20VLOOKUP%20%E6%97%B6%E5%87%BA%E7%8E%B0%E6%84%8F%E5%A4%96%E8%A1%8C%E4%B8%BA.png)
我在 Windows 上使用VLOOKUP
OpenOffice Calc,并尝试使用查找表来填充其他单元格。
我的查找表范围为 A1:B6
Car 4 Wheels
Florida No
Bus 8 Wheels
Lorry 18 Wheels
Michigan Yes
Bike 2 Wheels
我计划使用VLOOKUP
数据填充的单元格位于 E1:E6 范围内,我正在使用函数
=VLOOKUP(D1;$A$1:$B$6;2)
将其应用于以下数据会产生错误结果
Michigan Yes
Lorry 18 Wheels
Bike #N/A
Car 4 Wheels
#N/A
Florida No
自行车应该返回 2 个轮子,但返回的是 #N/A。
做了一些测试,我尝试用另一个词替换 Bike,然后有时有时该函数会给出预期的结果,但有时却不会。
此函数似乎还会返回不同的结果,具体取决于查找表中单词的顺序以及您在“人口”单元格中首次引用它们的顺序。
造成这种现象的原因是什么?它非常随机,并且给我带来了巨大的问题,因为我无法继续工作,也无法依赖电子表格。
答案1
正如评论中所说,您需要使用公式=VLOOKUP(D1;$A$1:$B$6;2;0)
。
最后一位是range_lookup
值(OpenOffice Calc 中的精确匹配),控制值是否需要完全匹配。
设置range_lookup
为FALSE
或则0
要求精确匹配,TRUE
或则1
允许不精确匹配。
您的问题源自哪里:
如果range_lookup
是TRUE
(默认设置,如果range_lookup
未设置也使用),您需要确保表格第一行中的查找值按升序排序。否则,VLOOKUP 可能会返回不正确或意外的值。
如果range_lookup
是FALSE
(需要完全匹配),则表第一列的值不需要排序。