VLookup mehrere Spalten
Ich verwende die VLookup-Funktion, mit der mehrere Werte in der Spalte gesucht werden. Das funktioniert sehr gut, nimmt aber viel Zeit in Anspruch, da ich 100.000 Zeilen in der Excel-Tabelle habe.
Gibt es eine Möglichkeit, diesen Code zu beschleunigen?
Der Code sucht grundsätzlich nach einem bestimmten Wert in einer Spalte und erhält den Offset. Der Unterschied zwischen einfachem VLookup und diesem besteht darin, dass bei mehreren Zeilen mit demselben Lookup-Wert alle Elemente abgerufen werden.
Function VLookupAll(ByVal lookup_value As String, _
ByVal lookup_column As Range, _
ByVal return_value_column As Long, _
Optional seperator As String = ", ") As String
Dim i As Long
Dim result As String
For i = 1 To lookup_column.Rows.Count
If Len(lookup_column(i, 1).Text) <> 0 Then
If lookup_column(i, 1).Text = lookup_value Then
result = result & (lookup_column(i).Offset(0, return_value_column).Text & seperator)
End If
End If
Next
If Len(result) <> 0 Then
result = Left(result, Len(result) - Len(seperator))
End If
VLookupAll = result
End Function