Mit Hilfe der benuterdefinierten Funktion (UDF) =SORTLIST(Zelle; Separator) können Einträge, welche sich innerhalb einer Zelle befinden alphabetisch sortiert werden.
Die Funktion zerlegt den Textinhalt der Zelle in Elemente, die durch ein bestimmtes Trennzeichen separiert sind. Das Trennzeichen wird innerhalb der Funktion verwendet und die sortierten Textelemente werden wieder unter Verwendung desselben Trennzeichens zusammengefügt und als Zeichenfolge zurückgegeben. Die Funktion ist geeignet, um Aufzählungen in einer Textzelle, die z. B. durch Komma oder Semikolon getrennt sind, alphabetisch zu sortieren. Auch Auflistungen mit Zeilenumbruch lassen sich so sortieren.
Die Lösung stammt von wilfert.de und wird mit ausdrücklicher Genehmigung auf Excel-Inside.de veröffentlicht.
Der VBA-Code für die benutzerdefiniert Funktion iist wie folgt aufgebaut und muss in ein Code-Modul eingefügt werden.
Function SortList(ByVal MyText As String, ByVal MySeparator As String) As String 'Gibt eine alphabetisch sortierte Liste von durch ein Trennzeichen separierten Elementen einer Zeichenfolge zurück Dim strBuffer As String Dim intCounter As Integer Dim arrList() As String Dim intPos As Integer Dim i As Integer Dim j As Integer Dim strBuf As String 'Einzelne Elemente der Zeichenfolge in Array schreiben strBuffer = Trim(MyText) Do intPos = InStr(strBuffer, MySeparator) intCounter = intCounter + 1 ReDim Preserve arrList(intCounter) If intPos = 0 Then arrList(intCounter) = Trim(strBuffer) strBuffer = "" Else arrList(intCounter) = Left(strBuffer, intPos - 1) strBuffer = Trim(Right(strBuffer, Len(strBuffer) - intPos)) End If Loop While Len(strBuffer) > 0 'Array sortieren For i = 1 To intCounter - 1 For j = i + 1 To intCounter If arrList(j) < arrList(i) Then strBuf = arrList(j) arrList(j) = arrList(i) arrList(i) = strBuf End If Next j Next i 'Zeichenfolgen zurückschreiben For intPos = 1 To intCounter strBuffer = strBuffer & arrList(intPos) If intPos < intCounter Then strBuffer = strBuffer & MySeparator Next intPos SortList = strBuffer End Function
In der beigefügten Beispieldatei können Sie die neue Funktion SORTLIST() in Aktion betrachten.