2016-08-08 11 views
0

Gibt es trotzdem, um mehrere Werte aus einem vlookup zurückzugeben? Ich möchte, dass Spalte I in Blatt 1 mehrere Werte an eine Zelle zurückgibt, oder gibt es eine andere Möglichkeit, dies anzuzeigen (würde ich lieber nicht drehen)?Vlookup, Rückgabe mehrerer Werte an eine Zelle

Blatt 1: hat alle meine eindeutige Werte (Col F und Rückkehr Werte in Col I),

Blatt 3: Col A hat doppelte String-Werte, die eindeutige Zeichenfolgen in Col B entsprechen, die sind einzigartig, einschließlich Leerzeichen.

EDIT

Blatt 1 oder gewünschte Ergebnis:

enter image description here

Blatt 1: Current

enter image description here

Blatt 3 Aktuelle:

enter image description here

Aktuelle Formel

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

Returns meist 0'en aufgrund der Rohlinge oder mehrere Werte zu den eindeutigen Werten entspricht.

+0

Kannst du ein Bild auflegen? Aus Ihrer Beschreibung kann nicht ermittelt werden, was sich in * Sheet3 Column B * und * Sheet1 Column F * befindet. –

+0

Hallo Tim, hilft das? – Jonnyboi

+0

Das hilft, dass ich jetzt verstehe, was Sie suchen. Ich denke, ich habe es irgendwo anders auf der Website gesehen, aber ich kann mich nicht erinnern, wo. Ich glaube nicht, dass es "SVERWEIS" verwendet hat, auf jeden Fall eine Array-Formel. –

Antwort

1

In Bezug auf VBA dann müssen Sie den Code ein bisschen von dem, was in dem Link war, den ich Ihnen gesendet habe. Das sollte funktionieren:

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

Danke für Ihre Antwort Tim, wie formatiere ich die Formel im Blatt? ie 'vlookupmulti = (Nachschlagewert, ___, __)' – Jonnyboi

+0

Wie eine normale 'SVERWEIS ', aber ich habe nicht das letzte TRUE/FALSE Argument. –

+0

es funktioniert :), gibt es trotzdem um es schneller laufen zu lassen? Scheint mein Excel zu frieren. – Jonnyboi

Verwandte Themen