Supportnet Computer
Planet of Tech

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:

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 Sub

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]

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