我正在使用 Vlookup 示例=VLOOKUP(E10,A18:B50,2)
来选择产品描述,但它对某些行有效,但对其他行无效。
当它不起作用时,它倾向于选择产品的最后描述(即字段 A18 将正确选择字段 B18 等等,直到它到达 A25,而 A25 将错误地选择 B50 等等)。产品编号有点复杂,例如
ABD10050CNR-XX (滑雪板041)
描述
工作台管道内/外角。
这是不是因为产品编号和描述太复杂/混乱而不起作用?
答案1
尝试
=VLOOKUP(E10,A18:B50,2,False)
如果省略第四个参数,则默认为 true,并且需要对查找列进行排序。请参阅 Excel 帮助:
如果 range_lookup 为 TRUE 或省略,则返回精确或近似匹配。如果未找到精确匹配,则返回小于 lookup_value 的下一个最大值。
[...]
如果 range_lookup 参数为 FALSE,VLOOKUP 将仅查找完全匹配项。如果 table_array 的第一列中有两个或多个值与 lookup_value 匹配,则使用找到的第一个值。如果未找到完全匹配项,则返回错误值 #N/A。
因此,省略第四个参数绝不会返回错误值,但如果数据未排序,则可能会返回错误结果。如果您想要精确匹配,请使用第四个参数并将其设置为False
。
答案2
数组范围真的是 A18:B50 吗?通常,每当我使用 VLOOKUP 时,我都会执行类似 $A$18:$B$50 的操作,这样当我复制并粘贴公式时,它仍会保留数组中的值。您可能会遇到这样的问题:A25 的值在数组中较高,但找不到,因为数组在您复制和粘贴时会动态变化。
答案3
VLookup 的最严格规则是,包含该表的表必须按照所用键正确排序。如果表未排序,则将提供不大于搜索值的最后一个表值。
示例表已排序:
0 红色
1蓝色
3 绿色
如果搜索的值为“2”且缺失,则“3”出现位置的下一个较低值将提供蓝色作为答案。
示例表未排序:
1 蓝色
0 红色
3 绿色
如果搜索的值为“2”且缺失,则“3”出现位置的下一个较低值将提供红色作为答案。
答案4
另一个可能的原因是搜索的文本包含波浪符号 ( ~
),它是 VLOOKUP 的转义字符,因此可能找不到任何内容,或者找不到您期望的内容。
请参阅此其他内容中的解释和解决方案超级用户问题。