Kombinationen

Hallo an alle Wissenden,

1)Ich möchte aus einer Menge von 8 Elementen ( a,b,c,d,e,f,g,h ) eindeutige 4-er Kombinationen erstellen, d.h. „abcd“ ist gleich „acdb“. Das es 70 solcher Kombinationen gibt ist mir klar, aber kann Excel diese Kombinationen auch erzeugen?

2)Kann Excel diese Kombinationen gleichmäßig in einem Gitter verteilen, also nicht abcd, abce, abcf, abcg usw.?

Bin trotz allem Suchens nicht fündig geworden

Danke für jeden Hinweis
HaJo

Hi Hajo,

immer noch nicht gelöst?:

/t/buchstabenkombinationen-zufaellige-verteilung/368…

1)Ich möchte aus einer Menge von 8 Elementen ( a,b,c,d,e,f,g,h
) eindeutige 4-er Kombinationen erstellen, d.h. „abcd“ ist
gleich „acdb“. Das es 70 solcher Kombinationen gibt ist mir
klar, aber kann Excel diese Kombinationen auch erzeugen?

Ja, siehe nachfolgenden Spaghetticode.

2)Kann Excel diese Kombinationen gleichmäßig in einem Gitter
verteilen, also nicht abcd, abce, abcf, abcg usw.?

Es gibt Zufallsverteilung, dann kann aber auch genau diese Verteilung, oder Verteilung/Auswahl aufgrund von Regeln, die müßte man dazu kennen. Regel wäre z.B. jeder zweite Wert, bis die 33 erreicht sind u.ä.

Bin trotz allem Suchens nicht fündig geworden

Gruß
Reinhard

In ein Modul:

Option Explicit
Sub acht()
Dim a As Byte, B As Byte, c As Byte, d As Byte, Wort$, zei As Long
Columns(1).ClearContents
For a = 97 To 104
 For B = 97 To 104
 For c = 97 To 104
 For d = 97 To 104
 Wort$ = Chr(a) & Chr(B) & Chr(c) & Chr(d)
 If pruef(Wort$, a) = True And pruef(Wort$, B) = True And pruef(Wort$, c) = True And pruef(Wort$, d) = True Then
 If Application.WorksheetFunction.CountIf(Columns(2), Bits(Wort$)) = 0 Then
 zei = zei + 1
 Cells(zei, 2) = Bits(Wort$)
 Cells(zei, 1) = Wort$
 End If
 End If
 Next d
 Next c
 Next B
Next a
[B1].EntireColumn.ClearContents
End Sub
Function pruef(Wort As String, Such As Byte) As Boolean
If InStr(InStr(Wort, Chr(Such)) + 1, Wort, Chr(Such)) = 0 Then pruef = True
End Function
Function Bits(Wort)
Dim n, B, nn
Bits = "00000000"
For n = 1 To 4
 For nn = 97 To 104
 If Mid(Wort, n, 1) = Chr(nn) Then Mid(Bits, nn - 96, 1) = "1"
 Next nn
Next n
End Function

Hallo Reinhard!

1000-Dank, hat prima funktioniert!
Zur Erklärung der „gleichmäßigen“ Verteilung:
Wir sind 8 Mann + spielen 1x/Woche Tennis/Doppel
Die Saison hat jetzt aber keine 70 Wochen, sondern nur 25-30, je nach Sommer- oder Wintersaison.
Es sollen A-H gleich oft + gleichmäßig über die Saison verteilt drankommen, also jeder meinetwegen 15x und A nicht die ersten 15 Wochen und dann nicht mehr, usw.

Nochmals Danke!
HaJo

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]