2016-08-14 8 views
0

ich brauche (auch getrennt durch Kommas) auf Spalte A von sheet1 mit Zelle A1 bis vlookup, A2 WerteLookup mehrere Werte in einer einzelnen Zelle (mit Kommas getrennt) und dann um die Werte in einer einzelnen Zelle zurück

SD-121, SD-232, SD-23 
SD-323,SD-333 

usw .. vlookup Tabelle in einem anderen Blatt mit Spalte A, B, C, D. Spalte A

A   B 
SD-232  US 
SD-23  UK 
SD-323  IN 
SD-333  SG 
SD-121  CN 

Die Suche Ergebnis ist in Spalte B der Tabelle1 Ergebniszelle B1 und B2 angezeigt werden

B 
CN, US, UK 
IN, SG 
+0

Es ist aus Ihrer Frage nicht klar, was Sie erreichen wollen. Versuchen Sie, ein Beispiel und ein erwartetes Ergebnis anzugeben, damit andere Sie verstehen. – tarashypka

+0

@tarashpka Überprüfen Sie, ob dies hilft – rockedbyjava

Antwort

0

Sie können eine Benutzerfunktion Schleife erstellen, die Werte durch die Funktion SVERWEIS:

Function VLOOKUPARRAY(ByVal lookup_val As Range, ByVal table_array As Range, ByVal col_index_num As Integer, Optional ByVal range_lookup As Integer = 0) As String 
    Dim s As String 
    Dim a1() As String 
    Dim a2() As Variant 
    Dim i As Integer 

    'Recalculate whenever a calculation happens on the worksheet 
    Application.Volatile 

    'Get the lookup value from the cell 
    s = lookup_val.Value 
    'Split into array 
    a1 = Split(s, ",") 
    'Set output array to input array dimensions 
    ReDim a2(0 To UBound(a1)) 
    'Loop through input array and set output array elements to lookup results using application lookup function. 
    For i = 0 To UBound(a1) 
     a2(i) = Application.WorksheetFunction.VLookup(Trim(a1(i)), table_array, col_index_num, range_lookup) 
    Next i 
    'Loop through output array and load values into a string 
    s = "" 
    For i = 0 To UBound(a2) 
     s = s & a2(i) & ", " 
    Next i 
    'Knock the final ", " off the end of the string 
    s = Left(s, Len(s) - Len(", ")) 
    'Set function output to string value. 
    VLOOKUPARRAY = s 
End Function 

, die schnell und schmutzig war, aber es gab mir die gewünschte Ausgabe. Passen Sie wie erforderlich an.

+0

Vielen Dank für die Antwort – rockedbyjava

+0

Gern geschehen. Hoffe es hat geklappt. – JMcD

0

Wenn Sie Office 365 neueste Update vom Februar 2016 haben, dann können Sie die folgende Matrixformel verwenden:

=TEXTJOIN(",",TRUE,IF(ISNUMBER(SEARCH(Sheet2!$A$1:$A$5,A1)),Sheet2!$B$1:$B$5,"")) 

eine Matrixformel sein muss mit bestätigt werden Ctrl-Shift-Enter statt eingeben, wenn bearbeiten Verlassen Modus. Wenn es richtig gemacht wird, wird Excel {} um die Formel setzen.

Die Rückgabe erfolgt in der Reihenfolge der Liste auf Blatt 2, nicht die Reihenfolge der durch Trennzeichen getrennten Zeichenfolge.

enter image description here

+0

Ich habe nicht das neueste Office 365. Trotzdem danke für die Antwort – rockedbyjava

Verwandte Themen