Supportnet / Forum / Tabellenkalkulation
Excel: Verketten wenn
Frage
Ich möchte gerne eine Funktioon in Excel schreiben die untereinanderstehende Zellen immer dann verkettet, wenn in Spalte B der Wert übereinstimmt.
Habe gerade ein wenig herumexperimentiert und folgenden Ansatz gefunden (vielleicht hilft der?): wenn ich die Namen vorher verkette (=A2&"Alt+Enter"&A3) dann zeigt er mir im brav die Namen in Excel in einer Zelle, durch Umbruch getrennt an.
Kann ich das nun im grossen Stil machen? Gäbe es alternativ vielleicht einen Makro, dass mir ermöglicht Zellen immer dann zu verketten wenn in Spalte B dergleiche Begriff/Abteilung steht? Kann ich als Trennzeichen dann automatisch einen Umbruch einfügen?
Antwort 1 von rainberg
Hallo Sarah,
schreibe in C1 folgende Formel und kopiere sie nach Bedarf nach unten.
=WENN(B1="x";A1"")
Für die Zellen der Spalte C musst Du den Zeilenumbruch aktivieren.
Das "x" steht für Begriff/Abteilung.
Gruß
Rainer
schreibe in C1 folgende Formel und kopiere sie nach Bedarf nach unten.
=WENN(B1="x";A1"")
Für die Zellen der Spalte C musst Du den Zeilenumbruch aktivieren.
Das "x" steht für Begriff/Abteilung.
Gruß
Rainer
Antwort 2 von Sarah1981
Hi Rainer,
soweit ganz gut, aber dann gibt er mir ja in C trotzdem nur den Wert aus A wieder, oder? Was ich ja gerne möchte ist, dass er alle As die X erfüllen in C zusammenschliesst und druch Umbruch trennt. (Ist die Vorarbeit für das Einfügen dieser Zelle in eine Serienbrieftabelle.)
soweit ganz gut, aber dann gibt er mir ja in C trotzdem nur den Wert aus A wieder, oder? Was ich ja gerne möchte ist, dass er alle As die X erfüllen in C zusammenschliesst und druch Umbruch trennt. (Ist die Vorarbeit für das Einfügen dieser Zelle in eine Serienbrieftabelle.)
Antwort 3 von rainberg
Hallo Sarah,
hab Dich leider falsch verstanden.
Da ist wohl ein Makro von Nöten, wobei ich Dir im Moment nicht helfen kann.
Gruß Rainer
hab Dich leider falsch verstanden.
Da ist wohl ein Makro von Nöten, wobei ich Dir im Moment nicht helfen kann.
Gruß Rainer
Antwort 4 von Sarah1981
schade, aber trotzdem danke
Antwort 5 von Sarah1981
Kann mir da vielleicht jemand anders helfen???
Antwort 6 von CaroS
Hallo Sarah1981,
ich würde es ja mal versuchen, aber ich kann mir Deine Ausgangssituation kaum vorstellen. Auch Dein Ansatz =A2&"Alt+Enter"&A3 verwirrt mich sehr. Was bewirkt das?
Ich gehe mal von folgenden Daten aus und bitte um einen Kommentar:
A1: Max Muster
A2: Wiesenweg 24
A3: 33611 Bielefeld
A4: Susi Sonnig
B1: 4711
B2: 4711
B3: 4711
B4: 4715
Jetzt verstehe ich das so, dass A1, A2 und A3 miteinander verkettet werden sollen, nicht aber A4, und das alles mit einer Formellösung?
Ohne Hilfsspalte wird das eine ziemlich bescheidene Lösung, z. B. mit dem Semikolon als Trennzeichen.
C1: =A1
C2: =WENN(B2 = B1; C1 & ZEICHEN(59) & A2; A2)
Formel aus C2 kopieren/ziehen nach C3, C4, ...
Statt des Semikolons (=ZEICHEN(59)) kannst Du auch ZEICHEN(13) oder ZEICHEN(13) & ZEICHEN(10) verwenden, das sorgt bei eingeschalteten Zeilenumbruch und optimaler Zeilenhöhe für Umbrüche innerhalb der Zelle.
Aber eine VBA-Lösung wäre wohl besser.
Gruß,
CaroS
ich würde es ja mal versuchen, aber ich kann mir Deine Ausgangssituation kaum vorstellen. Auch Dein Ansatz =A2&"Alt+Enter"&A3 verwirrt mich sehr. Was bewirkt das?
Ich gehe mal von folgenden Daten aus und bitte um einen Kommentar:
A1: Max Muster
A2: Wiesenweg 24
A3: 33611 Bielefeld
A4: Susi Sonnig
B1: 4711
B2: 4711
B3: 4711
B4: 4715
Jetzt verstehe ich das so, dass A1, A2 und A3 miteinander verkettet werden sollen, nicht aber A4, und das alles mit einer Formellösung?
Ohne Hilfsspalte wird das eine ziemlich bescheidene Lösung, z. B. mit dem Semikolon als Trennzeichen.
C1: =A1
C2: =WENN(B2 = B1; C1 & ZEICHEN(59) & A2; A2)
Formel aus C2 kopieren/ziehen nach C3, C4, ...
Statt des Semikolons (=ZEICHEN(59)) kannst Du auch ZEICHEN(13) oder ZEICHEN(13) & ZEICHEN(10) verwenden, das sorgt bei eingeschalteten Zeilenumbruch und optimaler Zeilenhöhe für Umbrüche innerhalb der Zelle.
Aber eine VBA-Lösung wäre wohl besser.
Gruß,
CaroS
Antwort 7 von CaroS
Hallo Sarah1981, hallo VBA-Spezis, hier mein 2. Versuch zur kritischen Beurteilung:
Das kann man aber bestimmt noch viel besser machen, schon allein der Umbruch mit
CaroS
Sub Zellen_verketten()
Dim Anfang As Long, Ende As Long
Dim i As Integer, j As Integer, s As String
Anfang = 1
Ende = Range("B65536").End(xlUp).Row + 1
s = Range("B1").Value
For i = 2 To Ende
If Range("B" & CStr(i)).Value <> s Then
s = Range("A" & CStr(Anfang)).Value
For j = Anfang + 1 To i - 1
s = s & Chr(13) & Chr(10) & Range("A" & CStr(j)).Value
Next j
Range("C" & CStr(j - 1)).Value = s
s = Range("B" & CStr(j)).Value
Anfang = i
End If
Next i
End SubDas kann man aber bestimmt noch viel besser machen, schon allein der Umbruch mit
Chr(13) & Chr(10) sieht nicht besonders aus. (Alte DOS-Gewohnheit, da kann man nichts machen.) Häkchen bei Zeilenumbruch und optimale Zeilenhöhe erforderlich, wie oben. Die entscheidende Frage: habe ich die Aufgabe überhaupt einigermaßen verstanden?CaroS

