Excel:在命名范围内查找并返回超出范围的值

问题描述:

我需要找到一种方法来搜索命名范围内的值并返回该范围旁边的列。原因很简单:我在列A中使用带有命名范围的列表验证。在此列表中,存在完整的产品类型名称(例如,Relay,Contactor,Enclosure),我需要从列B返回一个简短描述。Rly,Cont,Encl),这样当用户搜索列表时,很容易找到他要查找的内容。我知道我可以将范围扩展到$ A:$ B,但是如果我这样做,那么$ B的所有值将包括在列表中...Excel:在命名范围内查找并返回超出范围的值

这显示了一种方法来找出我需要的:= VLOOKUP (A1;“RANGE + 1C”,2,0) 我尝试了很多使用偏移和索引的方法,但是找不到这样做的方法...我甚至认为可以用相对引用例如:= VLOOKUP(A1,说明; 1“RC [1]”,0)或类似的东西... 还看了谷歌找到一些信息,但它似乎是非常陌生的东西...

我需要在公式中进行此操作,而不是在VBA中。

以下是示例文件的链接: http://www.filedropper.com/descriptionbuilder

任何提示?

谢谢!

+0

最简单的解决方案是用两列创建一个更多的命名范围,并在VLOOKUP中使用它。 – BrakNicku

你可能想要代替VLOOKUP的是MATCH & INDEX组合。

MATCH是一个函数,它告诉你从你选择的列表中找到重复值的行号 - 这就像VLOOKUP的一半。 INDEX是一个函数,它根据它给出的位置#从列表中抽取一个值,它就像VLOOKUP的另一半。

我在列A中看到您的一个范围,您的ID数据为描述 - 我假设列B没有与您指定的“命名”范围。我假设B列有其他数据,而A列从第一行开始某处[具体来说,我假设它从第5行开始]。在一起的公式看起来是这样的:

=INDEX(B:B,ROW(A5)-1+MATCH(A1,Description,0)) 

这就是说:找到行内#说明与A1中的文本匹配。然后添加A5-1的行号(然后将描述的顶部与列B的顶部对齐)。然后使用VLOOKUP拉该值从塔B.

备选方法和OFFSET

另一种方法是首先确定有多少行是在说明,然后使用该信息和偏移函数,创建一个基本上代表了说明,但跨列要去一个&乙而不只是A列这将如下所示新区(再次,假设说明开始于A5):

=VLOOKUP(A1,OFFSET(A5,0,0,ROWS(Description),2),2,0) 

这是说:指望有多少行是在描述。使用OFFSET构建一个数组,其起始于A5,其行数与Description中的行数和2列相同。 (因此在描述中有3个项目,这将是A5:B7)。然后在VLOOKUP中使用该新范围,并尝试在列A中找到A1描述区域,并返回列B中该行的结果。

可以使用Offset一个柱扩大命名区域,然后将其送入Vlookup喜欢的东西:

=VLOOKUP(C1,OFFSET(RANGE,0,0,,1+COLUMNS(RANGE)),1+COLUMNS(RANGE)) 

为了测试,我创建了一个名为范围在A列(称为“范围”) ,我将列B中的值放在命名范围的旁边,在C1中输入查找值并输入上面的公式。它成功地检索所需的值。

上编辑:我认为Grade'Eh'Bacon的答案是优秀的,可能是这一特定问题的最佳方法,但它给我的印象可能有用知道如何扩展名为范围的参考,而不改变名字本身,所以我保持这个答案。