AW: das ist ja ne ganz tolle Antwort
31.12.2008 11:49:00
Daniel
Hi
wenn alle gefundenen Einträge in der gleichen Zelle erscheinen sollen und nicht bekannt ist, wieviele Einträge es gibt, dann wirds mit Formeln alleine wahrscheinlich kompliziert.
Einfacher ist es da, sich selber per Makro eine benutzerdefinerte Funktion zu schreiben, die den SVerweis nach deinen Wünschen modifiziert.
hier der Code dazu:
Public Function SVerweisAlle(SuchBegriff As String, _
SuchMatrix As Range, _
Spalte As Integer, _
Optional TrKZ As String = "") As String
Dim arr
Dim i As Long
Dim Ergebnis As String
arr = SuchMatrix
For i = 1 To UBound(arr)
If arr(i, 1) = SuchBegriff Then
Ergebnis = Ergebnis & TrKZ & arr(i, Spalte)
End If
Next
If Len(Ergebnis) > 0 Then Ergebnis = Mid(Ergebnis, Len(TrKZ) + 1)
SVerweisAlle = Ergebnis
End Function
diesen Code kopierst du und fügst ihn folgendermassen ein:
- klicke EXTRAS - MAKRO - VISUALBASIC EDITOR
- im Editor klickst du EINFÜGEN - MODUL
- hier fügst du den kopierten Code in das neu geöffnete Fenster ein.
dadurch hast du eine neue Excel-Funktion erhalten, die du wie jede andere Excelfunktion auch verwenden kannst.
Die neue Funktion heißt "SVerweisAlle" und hat 4 Parameter.
die ersten 3 entsprechen den ersten 3 Parametern des normalen SVerweisen (Suchbegriff, Suchmatrix und Spalte), der 4 Parameter ist das Trennzeichen, mit dem die Ergebnisse innerhalb der Zelle getrennt werden. Um als Trennzeichen einen Zeilenumbruch einzugeben musst du die Formel "Zeichen(10)" verwenden.
für dein Beispiel sähe die Formel dann so aus:
=SVERWEISalle(A2;einträge!A3:B7;2;ZEICHEN(10))
Gruß, Daniel