簡體   English   中英

VBA:通過多個列進行vlookup

[英]VBA: vlookup through multiple columns

這是我的第一個問題,所以我將盡力格式化此問題。 我想在多個欄目中使用vlookup函數。 似乎不可能在大數據集的公式中進行操作,因此也許具有VBA知識的人可以為我提供幫助。

在我的excel文件中,我有兩個電子表格:具有1列“ A”和16868個不同進程ID的Sheet1。 具有從“ A”到“ HX”的列的Sheet2,其中“ A:HW”是不同的進程ID(每列具有不同的行數),在“ HX”列中,我有一個特定進程行的區域。

我想要實現的是對sheet1列“ A”進行vloop ,該列將在表sheet2中查找每個記錄,並在找到它時返回“ HX”。

在示例中:我在table_array sheet2“ A:HX”中的sheet1中尋找“ A2”單元格。 如果找到,則返回同一行中的“ HX”列中的單元格。 這里的技巧是,當外觀值不在sheet2列“ A”中時,則應在列“ B”中依次查找,然后在“ C”中依次類推,直到“ HW”。 有一個選項,其中查找值可能根本不在sheet2中,然后公式應返回“ 0”。 是否可以在VBA或excel公式中執行此操作?

首先,請不要使用VLOOKUP 曾經

INDEX/MATCH組合在各個方面總是更好。 它更快,更靈活,更強大,因為如果您插入列,它不會中斷。 由於不需要計數列,因此(可以說)它也更易於使用。

無論如何,回到眼前的問題。 您可以為此使用INDEX/SUMPRODUCT組合:

在此處輸入圖片說明

=INDEX(<range of return values>),SUMPRODUCT(--MAX((<range to search in>=<value to search for>)*ROW(<range to search in>)))-(ROW(<range to search in>)-1))

SUMPRODUCT返回找到該值的最后一個行號。

最后一位-(ROW(<range to search in>)-1)只是使返回值相對於搜索范圍(而不是絕對行號)。

然后,INDEX使用該值從HX列中選擇一個值。

暫無
暫無

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

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