2016-08-08 75 views
0

是否有從vlookup返回多個值的方法?我希望工作表1中的col I將多個值返回給單元格,還是有另一種顯示方式(寧可不透視)?Vlookup,將多個值返回給單元格

表1:具有所有我的唯一值(西F和在Ⅰ型膠原返回值),

表3:柱A具有對應於在色柱B唯一的字符串的重複字符串值,其是獨一無二的,包括空白。

EDIT

表1或期望的結果

enter image description here

表1:當前

enter image description here

表3當前

enter image description here

電流式

=VLOOKUP(F2,Sheet3!A:B,2,FALSE) 

返回大多0時,由於對應於該唯一值的坯料或多個值。

+0

你可以把照片?無法從你的描述中得到什麼* Sheet3 Column B *和* Sheet1 Column F *。 –

+0

嗨蒂姆,這有幫助嗎? – Jonnyboi

+0

這有助於我現在明白你的想法。我想我已經看到它在網站上的其他地方完成,但我不記得在哪裏。我不認爲它使用'VLOOKUP',但絕對是一個數組公式。 –

回答

1

就VBA而言,您必須稍微更改我向您發送的鏈接中的代碼。這應該工作:

Option Explicit 
Function vlookupmulti(rngLookup As Variant, rngSource As Range, col As Double) As String 
Dim d As Double, strCell As String 

'Error if range has less columns than col 
If rngSource.Columns.Count < col Then 
    vlookupmulti = CVErr(xlErrNA) 
    Exit Function 
End If 

'Loop through rows in the lookup column 
For d = rngSource.Row To rngSource.Rows.Count 
    If rngLookup = Sheets(rngSource.Parent.Name).Cells(d, rngSource.Column).Value Then 
     strCell = Sheets(rngSource.Parent.Name).Cells(d, rngSource.Column + col - 1).Value 
     If Len(strCell) > 0 Then vlookupmulti = vlookupmulti & strCell & ", " 
    End If 
Next d 

'Remove comma at end 
If Right(vlookupmulti, 2) = ", " Then 
    vlookupmulti = Left(vlookupmulti, Len(vlookupmulti) - 2) 
End If 

'Give error if no results 
If vlookupmulti = "" Then 
    vlookupmulti = CVErr(xlErrNA) 
End If 

End Function 
+0

感謝您的回覆Tim,我如何在工作表格式化公式?即'vlookupmulti =(lookup value,___,__)' – Jonnyboi

+0

和普通的VLOOKUP一樣,但我沒有得到最後一個TRUE/FALSE參數。 –

+0

它的工作原理:),無論如何,它使運行速度更快?似乎凍結我的優秀。 – Jonnyboi

相關問題