2013-06-28 31 views
-1

列A中有大量專業可以用多種方式編寫。在列BI中想要搜索列C中列出的有限職業,並且如果與列A中的某個職位匹配,AI想要從列B中的列C返回與職業相關聯的列D中的值。因此,對於與*teacher*我想讓1165在B列中出現。對於*driver* 5468的每個匹配。依此類推。我試圖用Vlookup來做到這一點,但它似乎無法處理這個問題。我轉身以下幾點:excel - 在列A中查找值返回預先指定的編號

=IF(ISNUMBER(SEARCH("teacher";A1));"1165";IF(ISNUMBER(SEARCH("driver";A1));"5468";IF(ISNUMBER(SEARCH("postman";9874));"1";" ")))

這可能做的伎倆,但我不知道是否有一個更優雅的方式嗎?而不是把一切都在很長的嵌套的if語句...的

A    B   C    D 
Driver   ?   Teacher   1165 
Teacher   ?   Driver    5468 
Truckdriver  ?   Postman   9874 
Works as teacher ? 
Driver   ? 
Postman   ? 
Works as postman ? 
Teacher   ? 

回答

0

我認爲你正在嘗試做將需要大量的嵌套if語句,如果你正在嘗試做這個嚴格按照公式和現在VBA 。如果你設置不同,你可以用hlookup來完成。評論並讓我知道你是否想讓我告訴你如何做到這一點。

但是,既然您使用了excel-vba作爲標記,我相信您正在尋找一個vba解決方案。要做到這一點的方法之一是這樣的:

for each cell in range("D1:D3") 
    for each cell2 in range("A1:A8") 
     if cell2.value = cell.value then cell2.offset(0,1).value = cell.offset(0,1).value 
    next 
next 

你要知道,這不會是你的模塊中寫的一切,但它是一個良好的開端。此外,範圍將需要進行更改以適應您的值保存在範圍內的任何範圍。

而偏移假設你需要的數據是一列權利(例如,cell.offset(0,1)是1165教師,例如。

+0

TNX的答案。我」我會更深入地檢查vba – user2532391

+0

如果您覺得足夠,請務必將其標記爲答案。 – Casey

相關問題