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

Kreuzprodukte

Kreuzprodukte
23.02.2006 08:54:39
marco (outi)
Hallo,
ich stehe seit langen wieder mal vor einem Rätsel mit Excel.
Kurz zur Beschreibung:
In Tabellenblatt A stehen verschiedene Merkmale in den diversen Spalten. Die Menge beschränkt sich derzeit noch auf 5 Spalten.
Nun bräuchte ich (wohl) ein Makro, was alle möglichen Kombinationen miteinander verbindet und in Tabellenblatt2 schreibt.
Sprich A2, mit B1 - danach A2 mit B2 usw ... Nicht die einzelne Spalten müssen untereinander kombiniert werden, sondern ein Wert mit nem anderen Wert der 2. Spalte..
hoffe das war irgendwie verständlich geschildert :/
Hier noch ein "Vorschau"-file
https://www.herber.de/bbs/user/31338.xls
Danke und Gruß
Marco

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kreuzprodukte
23.02.2006 09:12:36
marco (outi)
Hallo Uwe,
danke schonmal für die schnelle Antwort, aber leider meine ich sowas nicht ganz. Das was ich suche wäre aus deinem Beispiel ungefähr so eine Zusammenstellung:
868 - 255 - 942 - 423
868 - 387 - 792 - 218
868 - 542 - 736 - 505
868 - 728 - 573 - 369
868 - 694 - 682 - 620
868 - 368 - 506 - 171
Das er alle möglichen Kombinationen miteinander "verkettet". Ist ungefähr so, als ob ich von Lotto alle Kombinationen wissen möchte.
Gruß
Marco
Anzeige
AW: Kreuzprodukte
23.02.2006 09:12:47
marco (outi)
Hallo Uwe,
danke schonmal für die schnelle Antwort, aber leider meine ich sowas nicht ganz. Das was ich suche wäre aus deinem Beispiel ungefähr so eine Zusammenstellung:
868 - 255 - 942 - 423
868 - 387 - 792 - 218
868 - 542 - 736 - 505
868 - 728 - 573 - 369
868 - 694 - 682 - 620
868 - 368 - 506 - 171
Das er alle möglichen Kombinationen miteinander "verkettet". Ist ungefähr so, als ob ich von Lotto alle Kombinationen wissen möchte.
Gruß
Marco
AW: Kreuzprodukte
23.02.2006 09:54:32
ede
hallo marco,
also so richtig habe ich dein beispiel nicht verstanden, wie gehts den weiter!
hast du spalten und zeilen in deiner beschreibung vertauscht?
gruss
Anzeige
AW: Kreuzprodukte
23.02.2006 10:15:57
marco (outi)
Hallo,
also ich habe das Testfile nochmal umgebaut und paar Spalten weggenommen:

Die Datei https://www.herber.de/bbs/user/31342.xls wurde aus Datenschutzgründen gelöscht

Es soll also der Inhalt von Zelle A2 mit allen möglichen Kombinationen aus Spalte 2 / 3 / 4 / 5 verknüpft werden. Danach der Inhalt von A3 mit jeder Zelle aus Spalte 2 / 3 / 4 / 5 usw.
In dem Beispielfile habe ich jetzt mal (um es einfacher / verständlicher zu machen) nur 2 Spalten genommen. Die Ergebnisse werden in Tabelle 2 ausgeworfen.
Hoffe das war nun besser erklärt ..
Gruß
Marco
AW: Kreuzprodukte
23.02.2006 10:36:07
ede
hallo nochmal,
meins du so:
https://www.herber.de/bbs/user/31343.xls
las mal das makro laufen und prüf!
gruss
rückmeldung wäre super
Anzeige
AW: Kreuzprodukte
23.02.2006 10:46:37
marco (outi)
Genau sowas habe ich gemeint, wunderbar.
Eine kleine optimierung wäre noch (k.a ob möglich), das die ergebnisse in Tabellenblatt 2 Spalte A eingetragen werden und mit einem - getrennt sind. Das wäre mein Traumergebniss.
Aber wäre auch manuell noch über verketten machbar.
Vielen dank schonmal und gruß
Marco
AW: Kreuzprodukte
23.02.2006 10:50:58
ede
hallo nochmal,
dann ersetze den code vollständig durch diesen!

Sub Kreuztabelle_umsetzen()
lZeileA = Cells(65536, 1).End(xlUp).Row
'SheetNamen
sn1 = "Tabelle1"
sn2 = "Tabelle2"
nzeile = 1
For I1 = 2 To lZeileA
For I2 = 2 To lZeileA
For I3 = 2 To lZeileA
For I4 = 2 To lZeileA
For I5 = 2 To lZeileA
Sheets(sn2).Cells(nzeile, 1) = Sheets(sn1).Cells(I1, 1) & " - " & _
Sheets(sn1).Cells(I2, 2) & " - " & _
Sheets(sn1).Cells(I3, 3) & " - " & _
Sheets(sn1).Cells(I4, 4) & " - " & _
Sheets(sn1).Cells(I5, 5)
nzeile = nzeile + 1
Next I5
Next I4
Next I3
Next I2
Next I1
End Sub

gruss
Anzeige
AW: Kreuzprodukte
23.02.2006 10:57:15
marco (outi)
vielen vielen Dank.
Genau das habe ich gesucht bzw. gebraucht!!
Müsste gleich noch ein neuen Thread eröffnen, gibt noch ein anderes Problem..
AW: Kreuzprodukte
23.02.2006 11:34:06
marco (outi)
Hallo nochmal,
hab noch ein kleines Problemchen entdeckt.
Wenn in der Spalte A mehr Zellen befüllt sind, also z.B 10 Zellen, dann will er die auch mit den leeren Zellen aus Spalte B / C / D kreuzen (wo beispielsweise nur 4 zellen gefüllt sind). Und das sprengt leider das Excel format :-)
zu hülfe :-o
Gruß
Marco
AW: Kreuzprodukte
23.02.2006 11:41:25
ede
da hast du recht, die potenzierung geht schnell
versuchs mal so:

Sub Kreuztabelle_umsetzen()
lzeileA = Cells(65536, 1).End(xlUp).Row
lzeileB = Cells(65536, 2).End(xlUp).Row
lzeileC = Cells(65536, 3).End(xlUp).Row
lzeileD = Cells(65536, 4).End(xlUp).Row
lzeileE = Cells(65536, 5).End(xlUp).Row
'SheetNamen
sn1 = "Tabelle1"
sn2 = "Tabelle2"
nzeile = 1
'potenz ermitteln
'lngPotenz = (lzeileA - 1) ^ 5
For I1 = 2 To lzeileA
For I2 = 2 To lzeileB
For I3 = 2 To lzeileC
For I4 = 2 To lzeileD
For I5 = 2 To lzeileE
Sheets(sn2).Cells(nzeile, 1) = Sheets(sn1).Cells(I1, 1) & " - " & _
Sheets(sn1).Cells(I2, 2) & " - " & _
Sheets(sn1).Cells(I3, 3) & " - " & _
Sheets(sn1).Cells(I4, 4) & " - " & _
Sheets(sn1).Cells(I5, 5)
nzeile = nzeile + 1
Next I5
Next I4
Next I3
Next I2
Next I1
End Sub

gruss
Anzeige
AW: Kreuzprodukte
23.02.2006 12:06:05
marco (outi)
hmm tut mir echt leid wenn ich so nerve, aber irgendwie läuft das makro nicht durch.
Also es schreibt nix in tabelle2..
So sieht mein File wohl in der finalen version aus. Auch das Makro iss eingebaut, nur bei mir gehts irgendwie nit durch.
https://www.herber.de/bbs/user/31350.xls
Danke und Gruß
Marco
AW: Kreuzprodukte
23.02.2006 12:27:00
ede
hallo,
das liegt daran, das im code 5 Spalten erwartet werden!!!
verwende immer die 5. spalte mit, es reicht ein blank in E2
hier nochmal ein verbesserter code.

Sub Kreuztabelle_umsetzen()
'SheetNamen evt. anpassen
sn1 = "Tabelle1"
sn2 = "Tabelle2"
nzeile = 1
'letze Zeilen ermitteln
lzeileA = Sheets(sn1).Cells(65536, 1).End(xlUp).Row
lzeileB = Sheets(sn1).Cells(65536, 2).End(xlUp).Row
lzeileC = Sheets(sn1).Cells(65536, 3).End(xlUp).Row
lzeileD = Sheets(sn1).Cells(65536, 4).End(xlUp).Row
lzeileE = Sheets(sn1).Cells(65536, 5).End(xlUp).Row
' spalteninhalte löschen
Sheets(sn2).Columns(1).ClearContents
'umsetzen
For I1 = 2 To lzeileA
For I2 = 2 To lzeileB
For I3 = 2 To lzeileC
For I4 = 2 To lzeileD
For I5 = 2 To lzeileE
Sheets(sn2).Cells(nzeile, 1) = Sheets(sn1).Cells(I1, 1) & " - " & _
Sheets(sn1).Cells(I2, 2) & " - " & _
Sheets(sn1).Cells(I3, 3) & " - " & _
Sheets(sn1).Cells(I4, 4) & " - " & _
Sheets(sn1).Cells(I5, 5)
nzeile = nzeile + 1
Next I5
Next I4
Next I3
Next I2
Next I1
End Sub

gruss
Anzeige
neue Version
23.02.2006 12:39:26
ede
mal hoffen, ob jetzt alles abgefangen wurde.
versuch mal diese makro

Sub Kreuztabelle_umsetzen()
'SheetNamen evt. anpassen
sn1 = "Tabelle1"
sn2 = "Tabelle2"
nzeile = 1
'letze Zeilen ermitteln
lZeileA = Sheets(sn1).Cells(65536, 1).End(xlUp).Row
lZeileB = Sheets(sn1).Cells(65536, 2).End(xlUp).Row
lZeileC = Sheets(sn1).Cells(65536, 3).End(xlUp).Row
lZeileD = Sheets(sn1).Cells(65536, 4).End(xlUp).Row
lZeileE = Sheets(sn1).Cells(65536, 5).End(xlUp).Row
' spalteninhalte löschen
Sheets(sn2).Columns(1).ClearContents
'NullSpalte abfangen
If lZeileA <= 2 Then lZeileA = 2
If lZeileB <= 2 Then lZeileB = 2
If lZeileC <= 2 Then lZeileC = 2
If lZeileD <= 2 Then lZeileD = 2
If lZeileE <= 2 Then lZeileE = 2
'umsetzen
For I5 = 2 To lZeileE
For I4 = 2 To lZeileD
For I3 = 2 To lZeileC
For I2 = 2 To lZeileB
For I1 = 2 To lZeileA
Sheets(sn2).Cells(nzeile, 1) = Sheets(sn1).Cells(I1, 1) & " - " & _
Sheets(sn1).Cells(I2, 2) & " - " & _
Sheets(sn1).Cells(I3, 3) & " - " & _
Sheets(sn1).Cells(I4, 4) & " - " & _
Sheets(sn1).Cells(I5, 5)
nzeile = nzeile + 1
Next I1
Next I2
Next I3
Next I4
Next I5
End Sub

gruss
rückmeldung wäre super
Anzeige
AW: neue Version
23.02.2006 13:08:34
marco (outi)
So frisch ausm Mittag :-)
Ja funktioniert wunderbar, auch wenn die 5. Spalte leer ist. Sonst ist mir nix negativ aufgefallen,
Vielen dank!!!
Gruß
Marco

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige