Supportnet / Forum / Tabellenkalkulation
Zellen zusammenführen
Frage
Hallo!
Ich habe eine Spalte mit ca. 100 Namen und Ziffern.
Jetzt möchte ich in einer weiteren Spalte jede Zelle mit jeder anderen 99 zusammenführen/ darstellen/ verknüpfen.
Also:
Spalte A:
Müller
Meier
Schulze
33
63
1294
In Spalte B soll jetzt stehen:
MüllerMüller
MüllerMeier
MüllerSchulze
Müller33
Müller63
Müller1294
MeierMüller
MeierMeier
MeierSchulze
Meier33
Meier63
...
Wie mache ich das am einfachsten?
Vielen Dank und Grüße
Jones
Antwort 1 von _gau_
Wie nennt man sowas gleich? Variationen 2. Klasse mit Wiederholung? Und was waren dann, verdammt nochmal, diese komischen Permutationen?
Ach ja, sowas hat man alles mal für die Prüfung gelernt... und (größtenteils) wieder vergessen ;-)
Hab aus Schlaflosigkeit mal etwas mit VBA rumgespielt und ein Makro dafür erstellt:
Ich hoffe, das Ergebnis haut hin.
Das Makro erstellen über "Extras - Makro - Makros...", einen Makronamen (z.B. wie oben "Variationen") eingeben und "Erstellen" anklicken. Dann alles, was oben zwischen "Sub Variationen()" und "End Sub" steht, reinkopieren. Aber vielleicht kennst du VBA ja schon.
Danach den betreffenden Bereich markieren (also z.B. A1 bis A100) und das Makro starten.
Übrigens, bei 100 Zellen werden das 10.000 (1002) Variationen! Sollen das Adressen für'n Spamming werden? ;-)
[gau]
Ach ja, sowas hat man alles mal für die Prüfung gelernt... und (größtenteils) wieder vergessen ;-)
Hab aus Schlaflosigkeit mal etwas mit VBA rumgespielt und ein Makro dafür erstellt:
Sub Variationen()
' Schreibt alle Variationen aus jeweils 2 Zellen des
' markierten Bereichs in die Spalte rechts daneben.
' (darauf achten, daß dort keine anderen Werte stehen!)
Dim i, j, z As Integer
Dim Auswahl As Range
Dim Start As Range
Set Auswahl = Selection.Cells
Set Start = Cells(Auswahl.Item(1).Row, Auswahl.Columns(Auswahl.Columns.Count).Column + 1)
z = 0
If Auswahl.Cells.Count > 255 Then
MsgBox "Zu viele Zellen markiert!"
Exit Sub
End If
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
For i = 1 To Auswahl.Cells.Count
For j = 1 To Auswahl.Cells.Count
Cells(Start.Row + z, Start.Column).Value = Auswahl.Item(i) & Auswahl.Item(j)
z = z + 1
Next j
Next i
Application.Calculate
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End SubIch hoffe, das Ergebnis haut hin.
Das Makro erstellen über "Extras - Makro - Makros...", einen Makronamen (z.B. wie oben "Variationen") eingeben und "Erstellen" anklicken. Dann alles, was oben zwischen "Sub Variationen()" und "End Sub" steht, reinkopieren. Aber vielleicht kennst du VBA ja schon.
Danach den betreffenden Bereich markieren (also z.B. A1 bis A100) und das Makro starten.
Übrigens, bei 100 Zellen werden das 10.000 (1002) Variationen! Sollen das Adressen für'n Spamming werden? ;-)
[gau]
Antwort 2 von JonesM
Jo! Super, genau was ich gesucht hatte...
Nein, nix Spam! Es handelt sich natürlich nicht um Müllers und Meiers, sondern es werden Artikelgruppen und -nummern mit Kostenstellen versehen. Die erzeugte Spalte dient als Eingabebereich eines Steuerfeldes in einem Formular. Ich war nur zu faul, die alle per Hand einzugeben... es sind auch nur knapp 400 Einträge (bereits bereinigt um nicht existente). :-)
Vielen Dank noch einmal.
Jones
Nein, nix Spam! Es handelt sich natürlich nicht um Müllers und Meiers, sondern es werden Artikelgruppen und -nummern mit Kostenstellen versehen. Die erzeugte Spalte dient als Eingabebereich eines Steuerfeldes in einem Formular. Ich war nur zu faul, die alle per Hand einzugeben... es sind auch nur knapp 400 Einträge (bereits bereinigt um nicht existente). :-)
Vielen Dank noch einmal.
Jones

