2011-01-21 79 views
15

我有一个表,看起来像这样Excel的失败在字符串VLOOKUP

B C 
43 XS 6 
44 S 11 
45 M 16 
46 L 21 
47 XL 26 
48 XXL 31 

我写的公式:

`VLOOKUP("S",B43:C48,2)` 

它返回的21 为什么值?它应该返回11!

更新我在不同的表中重现了这个确切的错误。 VLOOKUP在搜索值为数字时起作用,但在使用字符串时一直失败。

回答

23

VLOOKUP做奇怪的事情,除非你指定的 “精确匹配” 与第四个参数,就像这样:

=VLOOKUP("S",B43:C48,2,FALSE) 

从Excel的帮助文件:

VLOOKUP(Lookup_Array中,则table_array,Col_index_num为, range_lookup)

如果range_lookup为TRUE,则table_array第一列中的值必须按升序排列:...,-2,-1,0,1,2,...,AZ,FALSE,真正;否则VLOOKUP可能不会给出正确的值。如果range_lookup为FALSE,则不需要对table_array进行排序。

而且也:

range_lookup是指定是否要VLOOKUP找到一个精确匹配或近似匹配的逻辑值。如果为TRUE或省略,则返回近似匹配。换句话说,如果没有找到完全匹配,则返回小于lookup_value的下一个最大值。如果FALSE,VLOOKUP将找到完全匹配。如果找不到,则返回错误值#N/A

+2

只是一个猜测原因:从一个无序列表中确定一个粗略的比赛将是infeasibly昂贵的,因为您可能需要在列表中的许多次迭代。 – 2011-01-21 18:38:38