首页 > 解决方案 > 如何使用 vlookup 搜索单元格值而不是其单元格引用公式(Excel)

问题描述

我正在尝试使用 excel vlookup 函数来搜索表中的值,该表是使用对其他工作表中的其他单元格的引用创建的。搜索到的每个单元格都有对另一个工作表中其他单元格的引用,如下图红色所示:

用于查找灰狗统计数据的表

在这个表中,我将该表命名为统计数据,并且为了测试,我将灰狗运行命名为相同。我还创建了其他表格来查找灰狗统计数据,如下所示:

VLookUp 表

但是,当我使用 Vlookup(葡萄牙语中的 PROCV)在灰狗列中搜索时,我收到一条“值不可用”错误消息(也在葡萄牙语中),如图所示。

那么,我怎样才能通过它的名字来获取灰狗数据,实际上它只是被单元格引用而实际上并不存在呢?

标签: excelreferencevlookup

解决方案


VLOOKUP 是您真正的问题:D

但是,假设你想使用 VLOOKUP,你定义的范围是错误的,@nutsch 是正确的:

=VLOOKUP(B1,Sheet1!A:H,2,FALSE)

或者

=VLOOKUP(B1,[Statistics],2,FALSE)

如果 [Statistics] 被定义为整个表。您必须使用“2”来调用“运行”,因为这就是 VLOOKUP 的工作方式(它计算您定义的数组中的列数 - 它不关心您命名的东西)。

现在,假设您厌倦了使用列号并且想要使用您的范围。然后我们看看索引/匹配。

索引/匹配

Index() 将帮助我们找到答案,而 Match() 帮助我们完成匹配部分。在 TheBest!B2 单元格中,您可以输入:

=INDEX(Sheet1!B:B,MATCH(B1,Sheet1!A:A,0))

或者

=INDEX([Runs],MATCH(B1,[Greyhound],0))

如果您使用命名范围(其中 [Greyhound] 是第一个屏幕截图中的 A 列,而 [Runs] 是同一屏幕截图中的 B 列。)匹配方程中的 0 也是我们找到精确匹配的方式。

有趣的是,我注意到您的输出表只是将数据翻转过来。您可以在此处使用数据透视表,或者您甚至可以设计一个适用于所有具有索引/匹配/匹配的单元格的方程。

索引/匹配/匹配

Index() 可以让您定义行和列,所以让我们也这样做!

=INDEX(Sheet1!A1:H100,MATCH(B$1,Sheet1!A:A,0),MATCH($A2,Sheet1!1:1,0))

或者,如果我假设 [Statistics] 是整个表并且 [Greyhound] 是 A 列并且 [Headers] 是第 1 行,

=INDEX([Statistics],MATCH(B$1,[Greyhound],0),MATCH($A2,[Headers],0))

您可以在报告页面上将这个方程式拖到 B2:B8 下方,它应该可以正常工作,无论 B1 中显示的是哪只狗。

如果您的 Statistics 数组使用 =Top50Graded!A3 引用狗名,这些都不应该关心。


推荐阅读