dpserver
Goto Top

Excel 2016 - mögliche Kombinationen aus einer Spalte bilden

Hallo,

ich habe in Spalte A, in den Zeilen 1-17 verschiedene Werte stehen und möchte in Excel alle möglichen Zweierkombinationen ausgeben.

Beispiel
SPALTE A
A
B
C
D
E
usw.

Soll ergeben:
AB
AC
AD
AE
usw

Wobei ich folgendendes gern ausschliessen möchte
AA
BB
CC usw.

AB UND BA reicht, wenn es als AB 1x ausgeben wird. BA wird nicht als Ergebnis gewünscht.

Kann mir dabei jemand helfen?

Vielen Dank Frank

Content-ID: 343315

Url: https://administrator.de/contentid/343315

Ausgedruckt am: 25.11.2024 um 20:11 Uhr

133417
Lösung 133417 13.07.2017 aktualisiert um 14:21:35 Uhr
Goto Top
Permutation ist dein Stichwort
https://www.extendoffice.com/documents/excel/3657-excel-generate-all-per ...
https://learn-powershell.net/2013/02/21/fun-with-powershell-and-permutat ...
Gibts hierzu auch schon diverse Threads im Forum zum Thema.

Für deine Anforderung reichen aber zwei verschachtelte FOR-Schleifen.
Sub Permute()
    Dim rowEnd As Long, outNum As Long
    outNum = 1
    With ActiveSheet
        rowEnd = .Cells(Rows.Count, "A").End(xlUp).Row  
        For i = 1 To rowEnd
            For x = i + 1 To rowEnd
                .Cells(outNum, "B").Value = .Cells(i, 1).Value & .Cells(x, 1).Value  
                outNum = outNum + 1
            Next
        Next
    End With
End Sub
Gruß
DPSERVER
DPSERVER 13.07.2017 um 14:25:18 Uhr
Goto Top
Vielen Dank, habe mir das angeschaut.

Zum einen unterbindet das nicht, dass AA oder BB usw. kombiniert werden.
Das lässt sich im Excel jedoch schnell lösen.

Zum zweiten jedoch, finde ich keine Lösung das AB und BA nicht als 2 Werte ausgegeben werden.
Gibt es dafür eine Formel oder einen Lösungsansatz?

VG Frank
133417
Lösung 133417 13.07.2017 aktualisiert um 15:04:15 Uhr
Goto Top
Zitat von @DPSERVER:

Vielen Dank, habe mir das angeschaut.

Zum einen unterbindet das nicht, dass AA oder BB usw. kombiniert werden.
Doch, siehe Code oben...
Zum zweiten jedoch, finde ich keine Lösung das AB und BA nicht als 2 Werte ausgegeben werden.
Gibt es dafür eine Formel oder einen Lösungsansatz?
siehe Code oben das berücksichtigt auch das...
DPSERVER
DPSERVER 13.07.2017 um 15:25:28 Uhr
Goto Top
KLASSE! Funktioniert fast perfekt.
Ich habe vergessen:

Zwischen den "AB" soll bitte ein Leerzeichen. Also "A B"

Kannst du das BITTE im Code noch anpassen. Für mich ist das Neuland.

VIELEN DANK Frank
133417
Lösung 133417 13.07.2017 aktualisiert um 21:03:13 Uhr
Goto Top
Zwischen den "AB" soll bitte ein Leerzeichen. Also "A B"
Zeile 8 so ändern:
.Cells(outNum, "B").Value = .Cells(i, 1).Value &  " " & .Cells(x, 1).Value   
Kannst du das BITTE im Code noch anpassen. Für mich ist das Neuland.
Hier ist deutsche Land, für's Neuland bitte hier klingeln face-smile.

Gruß
DPSERVER
DPSERVER 14.07.2017 um 09:49:13 Uhr
Goto Top
Vielen Dank für die Hilfe. Das Thema und die Möglichkeiten sind sehr interessant. Am Samstag kommt der Lesestoff dazu ;o)