对另一个Excel工作表使用的表进行排序会导致不同的VLOOKUP结果

时间:2014-01-09 21:59:33

标签: excel sorting excel-vba vlookup vba

我正在Excel 2010中创建一个使用VLOOKUP函数调用另一个工作表值的仪表板。

我正在使用的等式是:

  

= VLOOKUP(L $ 1,Sheet_B $ A:$ H,7,2)

L$1Sheet_A上请求一个唯一标识符,然后在Sheet_B上找到该ID,然后找到相应的数据并将其拉出。 问题是:

如果我对Sheet_B什么都不做,我会得到一个值 - 让我们说5。该值不正确

如果我按字母顺序从AZ中排序Sheet_B(这不会改变数据),我会得到一个完全不同的值 - 比方说12 - 这是正确的值。< / p>

问题是VLOOKUP功能检查的数据没有改变,只有它在Sheet_B中的排序方式。

有什么理由可能会发生这种情况吗?更重要的是,我如何修复它,以便每次拉这个仪表板时都不必对Sheet_B进行排序?

1 个答案:

答案 0 :(得分:4)

如果您的第4个参数等于True(在您的情况下为2),VLOOKUP会尝试查找近似匹配,因此您需要{{1}的第一列中的值按升序排列。

如果您将其更改为table_array(相当于0),则False会尝试找到完全匹配,因此无需进行排序。

因此,您应将VLOOKUP更改为:

VLOOKUP

您可以阅读更多in this Microsoft Office Support article.