Excel:命名范围内的Vlookup并返回超出范围的值

我需要find一种方法来search命名范围内的值,并返回该范围旁边的列。 原因很简单:我在列A中使用名称范围进行列表validation。在此列表中,有完整的产品types名称(例如,Relay,Contactor,Enclosure),我需要返回列B中的简短描述。Rly,Cont,Encl),当用户search列表时很容易find他要找的东西。 我知道我可以扩大我的范围为$ A:$ B,但如果我这样做,那么$ B的所有值将包括在列表中…

这显示了一个方法来找出我需要什么:= VLOOKUP(A1;“RANGE + 1C”,2,0)我尝试了很多方法与偏移量和索引,但无法find一种方式来这样做…我甚至认为这将是可能的相对参考(例如= VLOOKUP(A1,说明; 1“RC [1]”,0)或类似的东西…也看在谷歌find一些信息,但似乎是一件非常陌生的事

我需要在一个公式中做到这一点,而不是在VBA中。

这里是一个示例文件的链接: http : //www.filedropper.com/descriptionbuilder

任何提示?

谢谢!

你可能想要的而不是VLOOKUP是MATCH&INDEX组合。

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

我在列A中看到您的一个范围,您的ID数据是说明 – 我将假设B列没有与您的“命名”范围alignment。 我假设B列有其他数据,而A列从第一行开始某处[具体来说,我假设它从第5行开始]。 一起的公式将如下所示:

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

这说:find与A1中的文本匹配的描述中的行#。 然后添加A5 – 1的行号(然后将描述的顶部与列B的顶部alignment)。 然后从列B中提取该值

使用VLOOKUP和OFFSET的替代方法

另一种方法是首先定义Description中有多less行,然后使用该信息和OFFSET函数创build一个基本上代表Description的新区域,但是跨过A和B列而不是A列。这看起来如下(同样,假设说明从A5开始):

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

这说:计数有多less行是在说明。 用OFFSET构build一个数组,起始于A5,行数与Description中的数量和2列相同。 (所以在描述中有3个项目,这将是A5:B7)。 然后在VLOOKUP中使用新的Range,并尝试在列A中findA1 Description区域,并返回列B中该行的结果。

您可以使用“ Offset将一个已命名的范围扩大一列,然后将其input到Vlookup如下所示:

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

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

关于编辑:我认为Grade'Eh'Bacon的答案非常好,可能是解决这个特定问题的最好方法,但是我认为知道如何在不改变名称的情况下扩展指定范围的引用是非常有用的,所以我保持这个答案。