Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
680to684
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
680to684
680to684
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

kombinationen zellenübergreifend... oder so

kombinationen zellenübergreifend... oder so
14.10.2005 22:12:43
guido
hallo folks,
ich möchte gern 4 variablen, zum bleistift a b c d in sämtliche darstellbare dreiergruppen kombinieren, also abb... bbb und so weiter und so heiter.
also 4^3 = 64 dreiergruppen
hab gehört dat ließe sich mit verweis machen, aber mit verweis kenn ich mich nit aus...
lg
guido

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: kombinationen zellenübergreifend... oder so
14.10.2005 22:33:53
Leo
Hi,
bei vier Variablen sind es 24 Kombinationen: 1*2*3*4 oder Fakultät(4)
mfg Leo
AW: Permutationen
15.10.2005 00:00:09
guido
ja, genau, das ist ne permution mit wiederholungen !
also, wie geht das ?
ich habe getrennt in den zellen die variablen a b c d stehen und excel soll mir sämtliche dreier-kombinationen mit wiederholungen untereinander auflisten.
weiß jemand wie so etwas geht ?
gruß guido
AW: Permutationen
15.10.2005 00:58:00
Erich
Hallo Guido,
Permutationen sind es eigentlich nicht, die du willst. Permutationen sind nur verschiedene Anordnungen einer Grundmenge. Sind alle Zeichen der Grundmenge verschieden, gibt es keine Wiederholungen, und die Anzahl der Permutationen ist n! (n-Fakultät).
Du möchtest alle Variationen einer Grundmenge von 4 Elementen "zur 3. Klasse", also in Dreiergruppen. Davon gibt es 4^3 = 64 Stück.
Und die kannst du so bekommen: Die 4 Zeichen der Grundmenge müssen in A1 bis A4 stehen, dann startest du die erste

Sub (funzt auch mit mehr oder weniger Zeichen und kürzeren oder längeren Gruppen):

Sub VariMitWied_Start()
Dim Erg$               '  abcd      aaa bis ddd
VarMitW 4, 3, "", 2, 3 ' 4 Buchst. in 3er-Gruppen, "", ab Zeile 2 in Spalte 3
End Sub

Die bedient sich dann einer zweiten Prozedur, die sich auch selbst wieder aufruft:

Sub VarMitW(Zeichen%, GrLen%, Erg$, Zeile&, Spalte%)
Dim ii&, Laenge%
Laenge = Len(Erg)
For ii = 1 To Zeichen
If Laenge < GrLen - 1 Then
VarMitW Zeichen, GrLen, Erg & Cells(ii, 1), Zeile, Spalte
Else
Cells(Zeile, Spalte) = Erg & Cells(ii, 1)
Zeile = Zeile + 1
End If
Next ii
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Permutationen
15.10.2005 09:51:38
guido
hallo erich,
heißen dank für deine sehr präzise antwort !
leider hab ich keine ahnung von vba...
ich möchte es aber gerne versuchen, wenn es keinen anderen weg gibt.
wie bekomme ich die subs in mein excel unter, dass mir dabei der rechner keinen hustenanfall kriegt...?
lg
guido
AW: Permutationen
15.10.2005 10:14:25
Erich
Hallo Guido,
zunächst legst du dir eine Mappe an, in der in A1 bis A4 deine Buchstaben stehen und in der die Variationen eingetragen werden sollen.
Mit Alt+F11 öffnest du den VBA-Editor und sagst im Menü:
Einfügen - Modul
Angezeigt wird das (noch (fast) leere "Modul1". Dort hinein kopierst du die beiden Subroutinen (ohne die Zeile "Die bedient sich dann ...").
Danach kannst du den VBA-Editor schließen.
Von der Excelmappe aus kannst du dann mit Alt+F8 das Makro VariMitWied_Start ausführen.
Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Permutationen
15.10.2005 12:46:11
guido
hallo erich,
vielen dank für deine module und deine einfachen erklärungen !!
das hat wunderbar geklappt.
ich habe da aber noch ein problem...
wie kann ich diese subs so verändern, dass statt „a b c d“ in a1-a4 immer eine 2er-zeichenkette (ab cd ef gh) durchlaufen wird ?
diese neuen 3er-kombinationen sollen nicht als eine kombination pro zelle in der spalte c ausgegeben werden, sondern von c2-j2.
gruß guido aus dortmund
AW: Permutationen
15.10.2005 14:40:29
Erich
Hallo Guido,
das geht mit ähnlichen Prozeduren, das Ergebnis steht in C2:BN2

Sub VariMitWiedq_Start()
Dim Erg$               ' ab bis gh  ababab bis ghghgh
VarMitWq 4, 3, "", 2, 3 ' 4 Buchst. in 3er-Gruppen, "", in Zeile 2 ab Spalte 3
End Sub


Sub VarMitWq(Zeichen%, GrLen%, Erg$, Zeile&, Spalte%)
Dim ii&, Laenge%
Laenge = Len(Erg) / 2
For ii = 1 To Zeichen
If Laenge < GrLen - 1 Then
VarMitWq Zeichen, GrLen, Erg & Cells(ii, 1), Zeile, Spalte
Else
Cells(Zeile, Spalte) = Erg & Cells(ii, 1)
Spalte = Spalte + 1
'         Zeile = Zeile + 1
End If
Next ii
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Permutationen
15.10.2005 18:15:41
guido
hallo erich :)
danke für deine schnelle antwort !!
das hat wieder sehr gut geklappt :)
gibt es eine möglichkeit die kombis so darzustellen, dass die doppelziffern pro zelle dargestellt werden statt zusammenhängend als eine ziffernfolge ?
also: | aa | bb | cc |
anstatt: | aabbcc |
gruß
aus dortmund
guido
AW: Permutationen
15.10.2005 19:39:56
Erich
Hallo Guido,
klar, (fast) alles ist machbar. Aber wie kannst du jetzt in der Tabelle die Gruppen unterscheiden, mal abgesehen von der Regelmäßigkeit der Anordnung?
Jetzt füllt das Ergebnis 192 Spalten ...

Sub VariMitWied2q3_Start()
Dim Erg$                ' ab bis gh  ababab bis ghghgh
VarMitW2q3 4, 3, "", 2, 3 ' 4 Buchst. in 3er-Gruppen, "", in Zeile 2 ab Spalte 3
End Sub


Sub VarMitW2q3(Zeichen%, GrLen%, Erg$, Zeile&, Spalte%)
Dim ii&, Laenge%
Laenge = Len(Erg) / 2
For ii = 1 To Zeichen
If Laenge < GrLen - 1 Then
VarMitW2q3 Zeichen, GrLen, Erg & Cells(ii, 1), Zeile, Spalte
Else
Cells(Zeile, Spalte) = Left(Erg & Cells(ii, 1), 2)
Spalte = Spalte + 1
Cells(Zeile, Spalte) = Mid(Erg & Cells(ii, 1), 3, 2)
Spalte = Spalte + 1
Cells(Zeile, Spalte) = Right(Erg & Cells(ii, 1), 2)
Spalte = Spalte + 1
End If
Next ii
End Sub

Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Permutationen
15.10.2005 21:30:38
guido
hallo erich,
ich fühle mich schon wie ein vba-profi ;-)
„klar, (fast) alles ist machbar. Aber wie kannst du jetzt in der Tabelle die Gruppen unterscheiden, mal abgesehen von der Regelmäßigkeit der Anordnung?
Jetzt füllt das Ergebnis 192 Spalten ...“
du wirst lachen, ich habe mir mühsam die anordnung per hand „nachjustiert“...
immer schön die dreiergruppen ausgeschnippelt und eingefügt – puuuh. war ein mordsjob ;-)
also, welcher teil der subs ist den nun für die anordnung in den zellen verantwortlich ?
soll doch so aussehen:
sg | sg | sg
sg | sg | sg
... etc.
diese subs sehen alle verdammt kompliziert aus...
lieben gruß
guido
ps: kennst du dich auch mit matrix aus ;-) ... ?
Anzeige
AW: Permutationen
15.10.2005 22:35:25
Erich
Hallo Guido,
wenn du mir gleich deutlicher geschrieben hättest, was du haben möchtest, wär's für uns beide einfacher gewesen ...
Versuchs mal so:

Sub VariMitWied2q3_Start()
Dim Erg$                ' ab bis gh  ababab bis ghghgh
VarMitW2q3 4, 3, "", 2, 3 ' 4 Buchst. in 3er-Gruppen, "", ab Zeile 2 ab Spalte 3
End Sub


Sub VarMitW2q3(Zeichen%, GrLen%, Erg$, Zeile&, Spalte%)
Dim ii&, Laenge%
Laenge = Len(Erg) / 2
For ii = 1 To Zeichen
If Laenge < GrLen - 1 Then
VarMitW2q3 Zeichen, GrLen, Erg & Cells(ii, 1), Zeile, Spalte
Else
'        -------------------------------------  hier wird die Tabelle gefüllt
Cells(Zeile, Spalte) = Left(Erg & Cells(ii, 1), 2)
Cells(Zeile, Spalte + 1) = Mid(Erg & Cells(ii, 1), 3, 2)
Cells(Zeile, Spalte + 2) = Right(Erg & Cells(ii, 1), 2)
Zeile = Zeile + 1
End If
Next ii
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
P.S.:
Mit Matrizen kenne ich mich wohl noch aus (Mathestudium ist lange her!) Wenn du Matrixformeln in Excel meinst: Damit habe ich auch schon ein wenig mit gespielt. Aber da gibt es (auch in diesem Forum) die Spezialisten von www.excelformeln.de
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige