Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1680to1684
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Permutation ohne Doppelte

Permutation ohne Doppelte
12.03.2019 21:01:42
Cxy
Hallo,
ich möchte aus einer variabelen Anzahl von Werten in einer Spalte (Zahlen oder Buchstaben bzw. Kombinationen) mir in drei Spalten alle möglichen Kombinatinen Anzeigen lassen. Die Werte in der Ausgangsspalte kommen nicht doppelt vor.
Bei einer Anzahl von 15 Werten, müßten es dann eigentlich 35 Kombinationen sein.
Ich habe ein Makro, hier aus dem Forum, welches das mit 2 Spalten macht. Ich brauche aber drei Spalten.
Wie muss ich den VBA-Code abändern?
Hier der Code mit Permutation auf zwei Spalten:
Sub permutation()
Dim sCnt, sIx1, sTo1, sIx2, sTo2 As Single
sCnt = 1
sTo2 = Application.WorksheetFunction.CountA(ActiveSheet.Range("A:A"))
sTo1 = sTo2 - 1
For sIx1 = 1 To sTo1
For sIx2 = sIx1 + 1 To sTo2
ActiveSheet.Cells(sCnt, 2).Value = ActiveSheet.Cells(sIx1, 1).Value
ActiveSheet.Cells(sCnt, 3).Value = ActiveSheet.Cells(sIx2, 1).Value
sCnt = sCnt + 1
Next sIx2
Next sIx1
End Sub
So soll es eigentlich aussehen:
https://www.herber.de/bbs/user/128340.xlsx
Vielen Dank für Eure Hilfe!
Chris

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Permutation ohne Doppelte
12.03.2019 21:12:53
onur
"Bei einer Anzahl von 15 Werten, müßten es dann eigentlich 35 Kombinationen sein"?
Ich komme auf 2730 (15x14x13).
AW: Permutation ohne Doppelte
12.03.2019 21:45:52
Dieter
Hallo Chris,
die Anzahl der Kombinationen von 15 Elementen zur Ordnung 3 ist (15 über 3). Excel gibt das mit der Funktion KOMBINATIONEN(15; 3) = 455 an.
In der Anlage füge ich dir ein Programm bei, welches die Kombinationen auflistet.
https://www.herber.de/bbs/user/128343.xlsm
mfg
Dieter
AW: Permutation ohne Doppelte
12.03.2019 22:09:03
onur
Dieter hat Recht, ich hatte einen Denkfehler: (15x14x13)/(3x2x1)=455.
AW: Permutation ohne Doppelte
12.03.2019 22:30:39
Cxy
Vielen Dank für Eure Beiträge. Aber ich verstehe nicht?
Schaut Euch doch mal bitte meine Vorlage an. Das sind doch 35 Varianten?
Hintergrund ist, dass soll ein Spieltagspaln werden. Alle Teams sollten einmal gegeneinader spielen. Da müßte doch 35 richtig sein.
Nun muss ich nur den Code dementsprechend anpassen.
Anzeige
AW: Permutation ohne Doppelte
12.03.2019 22:36:42
onur
Ich verstehe deine 3 Spalten nicht. Was bedeutet die erste Zeile: 1 2 5 ?
1 spielt gegen 2 und 5 gleichzeitig?
AW: Permutation ohne Doppelte
12.03.2019 22:44:17
Cxy
Ja, dass sind Spieltage. Diese Nummern (Teams) spielen an einem Spieltag jeweils gegeneinader.
AW: Permutation ohne Doppelte
12.03.2019 23:09:45
onur
Das sind aber 105 Spielkombinationen und nicht 35.
Da du willkürlich entschieden hast, dass 3 pro Spieltag spielen, wären es 35 Spieltage, was nichts an den 105 Kombinationen ändert.
Welche drei Mannschaften du am Tag X gegeneinander spielen lässt, ist deine Entscheidung, das hat aber nix mit Permutation oder Kombination zu tun. Du hättest ja in Zeile 1 statt 1,2,5 auch 1,2,7 nehmen können, oder ? Das ändert trotzdem nix an der Anzahl von 105.
Anzeige
AW: Permutation ohne Doppelte
12.03.2019 23:35:50
Cxy
Oh je!
Ich fürchte ich bin zu schlicht.
Letztlich habe ich nur ein Ziel. Alle Teams sollen nur einmal gegeneinader antreten. Du hast recht, es geht nicht um die Kombinationen, sondern um die Spieltage.
Schau doch bitte mal in meine Beispiel-Datei. Vielleicht wird dadurch verständlich, was ich meine?
AW: Permutation ohne Doppelte
13.03.2019 06:31:17
onur
Deinen Sarkasmus kannst du dir .....
DU kapierst es nicht - man kann den Code nicht auf 3 Spalten umschreiben, da er einfach die 105 Spiele-Paarungen auflistet. WIE du dann daraus Spieltage machst (ob mit 3 Mannschaften pro Tag oder 4,5 oder 6, ob durch Auslosung oder der Reihe nach, das ist deine Entscheidung und hat nix mit Permutation o.Ä. zu tun.
Man könnte höchstens einen Code schreiben, der 3 Spieler auslost und dann die nächsten usw.
Anzeige
AW: Permutation ohne Doppelte
13.03.2019 07:02:59
Cxy
Nein, das war kein Sarkasmus!
Ich habe es dann wirklich nicht verstanden. Ich hatte ein wenig an dem Code gefummelt und habe 3 Spalten hinbekommen. Aber natürlich nicht so, wie es sein sollte.
Aber ich habe es dann jetzt verstanden. Es geht mit dem Code nicht!
Ich komme dann jetzt mal von dem Film mit der Permutation runter und fange von vorne an ...
Danke für Deine Zeit (und das ist ernst gemeint)!
AW: Permutation ohne Doppelte
13.03.2019 07:42:08
onur
Schaue ich mir mal an, wenn ich wieder zu Hause bin.
Willst du es so wie jetzt, dass pro Spieltag nur genau 3 Spieler antreten?
AW: Permutation ohne Doppelte
13.03.2019 08:12:31
Cxy
Das wäre Super! Vielen Dank vorab!
Ja, es sind immmer 3 Spieler pro Spieltag. Variabel sind nur die Anzahl der Spieler und daraus resultierend die Anzahl der Spieltage.
Anzeige
tricky Aufgabe
13.03.2019 08:19:05
lupo1
Bei 15 Mannschaften, die in nicht wiederholende Dreierpaarungen (für je drei Unter-Zweier-Paarungen) aufgeteilt werden sollen, gibt es für die Mannschaft A genau 7 Möglichkeiten:
1) A B C
2) A D E
:::
7) A N O
Diese 7 Möglichkeiten werden nun aus der Sicht der weiteren Mannschaften bis zum Ende hin immer mehr beschnitten, da sich sonst rückwärts Wiederholungen ergeben würden.
AW: tricky Aufgabe
13.03.2019 10:14:13
Cxy
Vielen Dank für Deinen Beitrag.
Wie hast Du denn die Möglichkeiten errechnet?
Errechnung
13.03.2019 10:37:23
lupo1
Voll-fremde Dreiergruppen ergeben sich bei 15 Mannschaften so:
15 minus Bezugsgruppe = 14
14 / 2 Partnermanschaften in einer Gruppe = 7
Bei weiteren Bezugsgruppen drohen dann Wdh., und es wird schwieriger.
Wie gesagt: Eine Formellösung habe ich nicht.
Da sich aber Deine "Liga" nicht ändern wird, benötigst Du nur einmal die gültige "Schablone" für Deine "Spieltage". Wieviele es sind (ob z.B. oder weniger), kann ich leider noch nicht sagen.
Anzeige
tricky Aufgabe (2)
13.03.2019 08:38:59
lupo1
Die Aufdröselung funktioniert dabei nicht einfach:
Beteiligung A (7)
01) A B C
02) A D E
:::
07) A N O
Beteiligung B (verbleibende 6)
08) B D F
09) B E G
10) B H J
11) B I K
12) B L N
13) B M O
Beteiligung C (weitere 6)
14) C D G
15) C E F
15) C H K
16) C I J
17) C L O
18) C K M
Beteiligung D (nur noch 4)
19) D H L
20) D K O
21) D I M
22) D J N
... und so wird es immer weniger. Für jedes N (=15) ergibt sich dabei ein anderer Weg.
Die zweite Schwierigkeit: Die 5 Dreierpaarungen vollständig spielen zu lassen, ohne dass eine einzelne Mannschaft an dem Tag pausiert. Ob es dafür auch bei Teilbarkeit (15 / 3) in jedem Fall Lösungen gibt? Ich vermute ja, aber den Algorithmus weiß ich auch hier nicht.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige