我已经在这个问题上工作了两个多小时,我开始质疑我的理智。我过去曾多次使用过vlookup,但现在它没有按预期工作。我试图使用vlookup在Excel中复制LEFT-JOIN(来自SQL)。
以下是我在单元格G2
上使用的公式:
这是我想要查找值的所有值的表。
以下是我用作参考的表格:
我只搜索一列来简化示例。单元格G2
包含应用于其下的单元格的公式。从第一张图片中可以看出,它不仅不匹配,而且还有一些非常奇怪的行为。
无论如何,我一直得到同样的结果!我开始失去理智。
有没有人有任何想法? 谢谢
答案 0 :(得分:5)
如果你想要完全匹配,你应该使用FALSE作为最后一个参数
答案 1 :(得分:1)
查找表必须按升序排序。单元格A369的值似乎低于它之前的行A368。在较高的值之后会出现几个“较低”值的实例。
在您疯狂之前,请考虑将范围分类为$ A $ 368至$ 679,并查看是否会产生影响。
否则,是时候抛弃VLOOKUP
,而是使用INDEX
和MATCH
。
答案 2 :(得分:1)
如果#N/A
不“干净”,有时您会收到lookup_value
错误。如果是这种情况,请尝试以下公式:
=VLOOKUP(TRIM(CLEAN(A2)),$A$368:$A$697,1,FALSE)
此外,您的table_array
可能包含“不干净”的数据,因此您需要先清理它,然后才能找到匹配项。为此,请使用此数组公式,将其与 Ctrl + Shift + Enter 一起提交:
=VLOOKUP(A2,TRIM(CLEAN($A$368:$A$697)),1,FALSE)
答案 3 :(得分:1)
你有没有尝试过比赛?它需要是VLOOKUP吗?
如果您对使用匹配感到满意,请尝试:
=IF(MATCH(A2,$A$368:$A$697,0),A2,"NO MATCH")