VLOOKUP值不适用于公式或函数,但它应该是

时间:2015-08-11 21:08:34

标签: excel-formula excel-2010

我使用以下公式:

=VLOOKUP(E9, 'Raw data'!$A$1:$I$45857, 9, FALSE)

我有两个标签,我想在我的第一张表中找到一个列,用于查找与E列中找到的ID号相关联的'原始数据'中的#值(数据从单元格E9开始)。我的第二个标签“原始数据”包括与数据范围A1:I45857中的表1中的E9开始的相同字段。我希望从“原始数据”返回的列是第9列。我想只是完全匹配。

我认为excel正在思考 - 在数组'原始数据'中查找e9,当我看到它时,返回我在数组'原始数据'中该行的第9列中找到的值。

擅长什么 - 公式或函数无法获得值

我很困惑,因为该值实际上在该数组中可用。当我过滤并搜索其中一个ID时,我会在两张纸中找到它。数据类型是两列的数字,没有恶意空格或任何东西......

我的目标是最终获取一部分ID并查看sheet1上找到的#和'raw data'上找到的数字之间的差异。我是Vlookup-ing,因此我可以获取'原始数据的#值,将其设置在#i我正在将它与sheet1进行比较,然后我可以根据ID转移数据以聚合这两个数字并创建计算字段,显示两者之间的差异。

有关如何修复我的vlookup的任何输入或基于公共ID将我的#从'原始数据'加入到sheet1的解决方法,我们非常感谢。

3 个答案:

答案 0 :(得分:2)

通过将“原始数据”中的ID字段放在最左边的列中来实现它。

答案 1 :(得分:2)

我建议你研究一下INDEX& amp;对于这种情况,匹配而不是VLOOKUP。 VLOOKUP有两个主要缺陷:(1)您必须订购数据,以便您的搜索项是连续数据块的最左侧列[如您所见]; (2)它是易变的,这意味着当一个列插入到您的数据块中时,它将不再正确地计数'要移动以检索数据的列数。

MATCH就像VLOOKUP的一半。你给MATCH一个特定的列或行,以及一个要搜索的值,它只会返回它必须移动以找到该值的单元格数。

=MATCH(A1,B:B,0)

这说“看B:B,然后告诉我A1的值出现在哪一行”。

INDEX就像VLOOKUP的另一半。您为INDEX提供一组单元格(行,列或2D范围)和特定行号(可能还有列号),它将返回该单元格的值。

=INDEX(C:C,5)

这将为您提供单元格C5的值,该单元格是在为INDEX提供的列中找到的第5行。合并这两个公式,它将返回列C的值,其中列B匹配A1:

=INDEX(C:C,MATCH(A1,B:B,0))

此公式给出了相同的结果

=VLOOKUP(A1,B:C,0)

VLOOKUP在这里看起来更简单,但是INDEX& MATCH更通用 - 在您的情况下,您不需要重新排序数据以使其工作,您可以使用以下公式:

=INDEX('Raw Data'!I:I,MATCH(E9,'Raw Data'!E:E,0))

一旦你养成了使用INDEX / MATCH而不是vlookup的习惯,你会发现你的数据管理起来要灵活得多。

答案 2 :(得分:1)

您不需要在A列中启动Vlookup。如果ID列不在A列中,只要ID列位于要返回的列的左侧,Vlookup仍然可以工作。因此,如果要从列I返回值,并且ID列在列F中,则可以保持表原样并将Vlookup更改为

=VLOOKUP(E9, 'Raw data'!$F$1:$I$45857, 4, FALSE)

这将在F列中查找匹配并返回第四列的值,即第I列。