2015-10-13 275 views
2

我需要找到一種方法來搜索命名範圍內的值並返回該範圍旁邊的列。原因很簡單:我在列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

回答

2

你可能想要代替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中該行的結果。

1

可以使用Offset一個柱擴大命名區域,然後將其送入Vlookup喜歡的東西:

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

爲了測試,我創建了一個名爲範圍在A列(稱爲「範圍」) ,我將列B中的值放在命名範圍的旁邊,在C1中輸入查找值並輸入上面的公式。它成功地檢索所需的值。

上編輯:我認爲Grade'Eh'Bacon的答案是優秀的,可能是這一特定問題的最佳方法,但它給我的印象可能有用知道如何擴展名爲範圍的參考,而不改變名字本身,所以我保持這個答案。