Wie kann ich gefüllte Zellen einer Zeile automatisiert verketten?
Ich habe hunderte Spalten. Manche von Ihnen sind gefüllt, manche leer. Gibt es eine Möglichkeit, die gefüllten Zellen, wie unten in Spalte G zu sehen, automatisiert zusammenzufassen? Manuell krieg ich das nicht hin, es ist zu viel.
1 Antwort
Hallo,
falls du auf die Farbe verzichten kannst, kannst du das direkt so erreichen:
- =WECHSELN(WENN(B2<>"";"|"&B$1&": "&B2;"")&WENN(C2<>"";"|"&C$1&": "&C2;"")&WENN(D2<>"";"|"&D$1&": "&D2;"")&WENN(E2<>"";"|"&E$1&": "&E2;"")&WENN(F2<>"";"|"&F$1&": "&F2;"");"|";"";1)
Über die Wenn() werden die Einträge jeweils zusammengesetzt und per & verkettet, anschließend entfernt Wechseln() das "|" am Anfang.
Falls die Färbung erhalten bleiben werden soll, müsste man VBA bemühen.
Oh hatte vorhin Zeilen statt Spalten gelesen, dann muss es wohl doch VBA sein:
Sub alleZusammen()
Dim lZei As Long, lSpa As Long
Dim z As Long, s As Long
Dim zus As String
With ActiveSheet
lZei = .Range("A" & .Rows.Count).End(xlUp).Row
lSpa = .Cells(1, .Columns.Count).End(xlToLeft).Column
For z = 2 To lZei
zus = ""
For s = 2 To lSpa
If .Cells(z, s).Value <> "" Then
zus = zus & "|" & .Cells(1, s).Value & ": " & .Cells(z, s).Value
End If
Next s
.Cells(z, lSpa + 1) = Right(zus, Len(zus) - 1)
Next z
End With
End Sub
Ab Version Excel 2019 gäbe es Textkette() zum Verketten von Bereichen, wobei ich nicht ganz sicher bin ob das mit den Wenn() zusammen funktionieren würde. Ältere Versionen verstehen Bereiche beim verketten leider überhaupt nicht.
Bei dem Beispiel oben klappt es wunderbar, danke Dir
Aber in meiner Datei mit den vielen Spalten wird diese Zeile als Fehler markiert.
.Cells(z, lSpa + 1) = Right(zus, Len(zus) - 1)
Keine Ahnung, was ich da korrigieren könnte. Darf ich dir meine eigentliche Datei mal per Mail zusenden?
Spontan würde ich darauf tippen eine Zeile der Tabelle ist leer, schicke dir dafür eine FA
Danke DanKirpan. Die Farben sind nicht wichtig, das habe ich nur zur besseren Übersicht so dargestellt.
Deine Formel funktoniert zwar, aber bei mehreren hundert Spalten leider sehr aufwendig. Könnte man anstatt die Zellen einzeln zu benennen auch einen gesamten Bereich auswählen? Also z.b. B2:F2 anstatt B2, C2, D2, E2, F2...