Hallo Happy,
für eine VBA-freie Lösung würde ich das ähnlich aufbauen, wie du. Hier bleibt einem leider nichts anderes übrig, als wirklich jeden Teil um jeweils
ein Zeichen weniger erneut zu suchen, da du leider eine lange Zeichenkette mit eher uninteressantem Rattenschwanz innerhalb einer kurzen
suchst. Umgekehrt wäre es einfacher.
Mit einer Benutzerdefinierten Funktion ließe sich das allerdings bewerkstelligen. Wenn du in ein allgemeines Modul (z.B. Modul1) den folgenden
Code eingibst...
[code]Function TEILSVERWEIS(Bedingung, SuchBereich, Spalte, Optional Genauigkeit)
Dim Teil As String, i As Long
For i = Len(Bedingung) To 1 Step -1
Teil = Left(Bedingung, i)
Res = Application.VLookup(Teil, SuchBereich, Spalte, Genauigkeit)
If Not IsError(Res) Then
TEILSVERWEIS = Res
Exit Function
End If
Next i
TEILSVERWEIS = Res
End Function[/code]
...solltest du mit einer Formel wie [b]=wennfehler(Teilsverweis(A3;Rohdaten!$A$2:$H$10;8;0);"") [/b] dein Ziel erreichen. Vorraussetzung ist
allerdings, dass die Vergleichswerte in den Rohdaten tatsächlich reine Texte sind. Falls du diese Daten erst als Zahl eingibst und dann lediglich
die Zelle als Text formatierst, wird der Wert von Sverweis erst gefunden, nachdem du nochmals in die Formelzeile gehst und nochmals Enter
drückst. Da du aber bereits ein paar SVERWEIS-Formeln hast gehe ich davon aus, dass das nicht nötig ist.
Gruß Mr. K.