Supportnet Computer
Planet of Tech

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

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.)

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

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

Antwort 7 von CaroS

Hallo Sarah1981, hallo VBA-Spezis, hier mein 2. Versuch zur kritischen Beurteilung:

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 Sub


Das 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