Ich empfehle eine Lösung, die etwas VBA erfordert.
In diesem Beispiel befinden sich Beispieldaten in B2: C10. Lassen Sie E1 als Überschriftszelle und geben Sie in E2 die folgende Formel ein. Drücken Sie innerhalb der Formelleiste STRG + UMSCHALT + EINGABETASTE, um eine Array-Formel zu erstellen. Die Formel wird nun in geschweifte Klammern eingeschlossen, um anzuzeigen, dass es sich um eine Array-Formel handelt.
=IFERROR(INDEX($B$2:$B$10, MATCH(0, COUNTIF(E$1:$E1, $B$2:$B$10), 0),1),"")
Ziehen Sie dies nach unten, bis Sie Leerstellen erhalten. Dadurch wird zunächst eine Liste eindeutiger Werte aus der Gruppe B2: B10 erstellt. Wenn Sie diese Formel verwenden, sollte mindestens eine Zelle darüber verfügbar sein, auf die verwiesen werden kann. E1 in diesem Fall als Formel beginnt in E2.
Wir werden eine Funktion namens TEXTJOIN verwenden. In den meisten Versionen von Excel ist dies jedoch nicht verfügbar. Wenn Sie die Office 365-Version von Excel 2016 verwenden, ist dies möglicherweise der Fall. Wenn nicht verfügbar, verwenden Sie unter UDF (User Defined Function) in VBA die gleiche Funktionalität.
Drücken Sie ALT + F11, um den VBA-Editor aufzurufen. Fügen Sie im Menü Einfügen ein Modul ein. Fügen Sie die folgende UDF hinzu.
Function TEXTJOIN1(delimiter As String, ignore_empty As Boolean, ParamArray cell_ar() As Variant) For Each cellrng In cell_ar For Each cell In cellrng If ignore_empty = False Then result = result & cell & delimiter Else If cell <> "" Then result = result & cell & delimiter End If End If Next cell Next cellrng TEXTJOIN1 = Left(result, Len(result) - Len(delimiter)) End Function
Nun zurück zum Excel-Sheet, wir werden diese Funktion als UDF in Formel verwenden. Fügen Sie in F2 die folgende Formel ein, und drücken Sie STRG + UMSCHALT + EINGABETASTE, um eine Array-Formel zu erstellen.
=IFERROR(TEXTJOIN1(CHAR(10),TRUE,IF($B$2:$B$10=E2,$C$2:$C$10,"")),"")
Ziehen Sie es bis zu den vorgesehenen Reihen nach unten. Warten Sie, dies erstellt eine Liste von Namen nach Gruppen, die mit Char (10) verkettet sind. Um jedoch den richtigen Effekt zu sehen, müssen Sie den Wrap-Text in den beabsichtigten Zellen aktivieren. Sie können dies manuell mit der Option "Zellen formatieren" in Excel durchführen oder Sie können dies unter dem einfachen Makro verwenden, um es für Sie auszuführen. Geben Sie einfach den Bereich am Anfang an. In diesem Beispiel ist es E2: F4.
Drücken Sie ALT + F11, um den VBA-Editor aufzurufen. Fügen Sie ein Modul aus dem Menü Einfügen ein und fügen Sie den folgenden Code ein. Dadurch wird ein Makro mit dem Namen Format1 erstellt
Unterformat1 ()
Range("E2:F4").Select With Selection .HorizontalAlignment = xlLeft .VerticalAlignment = xlTop .WrapText = True .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With End Sub
Zurück in der Excel-Tabelle Drücken Sie ALT + F8, um das Makro-Dialogfeld aufzurufen, und führen Sie das Format1 aus.
Testen Sie diese Lösung an Ihrem Ende und informieren Sie mich bei Problemen.