VLOOKUP在Excel中出现故障?

时间:2018-03-26 23:03:32

标签: excel vlookup

我已经在这个问题上工作了两个多小时,我开始质疑我的理智。我过去曾多次使用过vlookup,但现在它没有按预期工作。我试图使用vlookup在Excel中复制LEFT-JOIN(来自SQL)。

以下是我在单元格G2上使用的公式:

enter image description here

这是我想要查找值的所有值的表。

enter image description here

以下是我用作参考的表格:

enter image description here

我只搜索一列来简化示例。单元格G2包含应用于其下的单元格的公式。从第一张图片中可以看出,它不仅不匹配,而且还有一些非常奇怪的行为。

  1. 我删除了两个表的重复项。
  2. 我已将数据格式化为纯文本值
  3. 我在三台不同的电脑上试过这个公式
  4. 无论如何,我一直得到同样的结果!我开始失去理智。

    有没有人有任何想法? 谢谢

4 个答案:

答案 0 :(得分:5)

如果你想要完全匹配,你应该使用FALSE作为最后一个参数

答案 1 :(得分:1)

查找表必须按升序排序。单元格A369的值似乎低于它之前的行A368。在较高的值之后会出现几个“较低”值的实例。

在您疯狂之前,请考虑将范围分类为$ A $ 368至$ 679,并查看是否会产生影响。

否则,是时候抛弃VLOOKUP,而是使用INDEXMATCH

答案 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")