簡體   English   中英

Excel:命名范圍中的Vlookup並返回范圍之外的值

[英]Excel: Vlookup in named range and return a value outside of range

我需要找到一種方法來搜索命名范圍內的值,並返回該范圍旁邊的列。 原因很簡單:我確實在A列中使用了具有指定范圍的列表驗證。此列表中有產品類型的完整名稱(例如,繼電器,接觸器,外殼),我需要從B列中返回簡短說明(例如(Rly,Cont,Encl),這樣當用戶搜索列表時,很容易找到他要查找的內容。 我知道我可以將范圍擴展到$ A:$ B,但如果這樣做,則$ B的所有值都將包括在列表中...

這顯示出一種方法來弄清楚我的需要:= VLOOKUP(A1;“ RANGE + 1C”,2,0)我嘗試了很多使用偏移量和索引的方法,但是找不到方法...我什至認為可以通過相對引用(例如= VLOOKUP(A1,Description; 1“ RC [1]”,0)或類似的方法)來完成此操作...也在Google中查找了一些信息,但似乎變得非常陌生...

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

這是示例文件的鏈接: http : //www.filedropper.com/descriptionbuilder

有什么提示嗎?

謝謝!

您可能想要代替VLOOKUP的是MATCH&INDEX組合。

MATCH是一個函數,它告訴您從所選列表中找到重復值的行號-就像VLOOKUP的一半一樣。 INDEX是一個函數,它根據您賦予它的位置#從列表中拉出一個值-就像VLOOKUP的另一半一樣。

我在A列中看到您的一個范圍,其ID數據為Description-我將假設B列沒有與您的范圍一致的“命名”范圍。 我假設B列還有其他數據,並且A列從第一行之后的某個地方開始[具體來說,我假設它從5行開始]。 公式看起來像這樣:

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

這就是說:在“說明”中找到與A1中的文本匹配的行號。 然后添加A5-1的行號(然后將Description的頂部與B列的頂部對齊)。 然后從B列中提取該值。

使用VLOOKUP和OFFSET的替代方法

另一種方法是先定義“描述”中有多少行,然后使用該信息和OFFSET函數創建一個新區域,該區域本質上表示“描述”,但跨越A和B列,而不僅僅是A列。 (同樣,假設描述從A5開始):

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

這就是說:計算“描述”中有多少行。 用OFFSET構造一個數組,該數組從A5開始,具有與Description中一樣多的行和2列。 (因此,說明中包含3個項目,則為A5:B7)。 然后在VLOOKUP中使用該新范圍,並嘗試在A列的Description區域中找到A1,並從B列的該行返回結果。

您可以使用Offset將命名范圍擴大一列,然后將其輸入到Vlookup如下所示:

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

為了進行測試,我在A列中創建了一個命名范圍(稱為“ RANGE”),在B列中將值放置在該命名范圍附近,在C1中放置了一個查找值,然后輸入了上面的公式。 它成功檢索了所需的值。

編輯時:我認為Grade'Eh'Bacon的答案非常好,並且可能是解決此特定問題的最佳方法,但是讓我知道了解如何擴展已命名范圍的引用而不更改名稱本身可能很有用,因此我保持這個答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM