2014-02-16 124 views
0

我創建了一個Vlookup,但首先需要滿足條件來確定要使用的Vlookup。運行之前設置條件Vlookup VBA

如果細胞= 1,則 運行VLOOKUP#1

如果細胞= 2然後 運行VLOOKUP#2

只有4個可能的變量,該細胞可以相等。這必須在循環中,因爲工作表中的條目是多個。它會首先查看特定單元格的等值,然後確定要使用的Vlookup。

任何見解?

+0

您可以使用'CHOOSE()'來做到這一點。查看該功能的幫助。或者使用嵌套的IF()。 –

回答

0

我懷疑你需要一個循環,因爲這可能會在VLOOKUP內處理,但我假設條件細胞(四個值之一)不是爲VLOOKUP觸發細胞:

SO21807849 example

這裏A1是條件,C1觸發值和D1包含用於查找下式:

=VLOOKUP(C1,$H$1:$L$3,A1+1,0) 
在示例

並因此也結果k

當在查找表(這裏是框)中查找適當的值時,A2僅確定跨越多少個列。

我們從ColumnH得知,20位於表格的第二行,A1+1表示將值A1(即四個)的列進一步向右移動。

例如,將藍色更改爲2,將黃色更改爲30,結果爲f

+0

我不確定你的答案是我在找什麼。我會盡量用你的例子來解釋一下。列A是變量,並且說它可以等於4或5. 4與列H:L中的數據相關。 5涉及到不同的表格,測量和數據有一點不同。所以我想要做的是如果單元格A = 4,則= VLOOKUP(C1,$ H $ 1:$ L $ 3,2,0),或者單元格A = 5 = VLOOKUP(C1,$ J $ 1:$ E $ 3,4,0)。 C1是觸發器值,但列A確定要運行的Vlookup。我希望這可以讓它更清晰一些。再次感謝!! – NBunkowske

+0

是的,我認爲是TQ(但請記住Qs的澄清通常最好作爲OP的編輯)。如果你的查詢表是不同的寬度,它可能有助於知道這些是什麼。我的答案是基於每列爲2列,例如H:I。) – pnuts

0

如果值是肯定的整數1到N,就像@Tim指出,你可以使用CHOOSE:

=CHOOSE(A1;Vlookup1;Vlookup2;...;VlookupN) 

如果A1 = 1 Vlookup1將被執行,A1 = 2 Vlookup2 .... A1 = N ... VlookupN

+0

這是完美的!謝謝CRondao和Tim!我還沒有嘗試過,但這會繼續運行正確嗎?例如A1 = 1,則A2 = 4.列A中的值取決於用戶輸入。 – NBunkowske

+0

如果你複製CHOOSE公式,是的... – CRondao

+0

有沒有辦法把它放在VBA中?我想避免將公式放入單元格中。條目數量不一致,一旦錯誤發生,其他人將使用它。我想爲其他用戶簡化它。你在說什麼對我來說很有意義,但是我想要它,所以你可以點擊一個按鈕和它的完成 – NBunkowske