Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Alle Kombinationsmöglichkeiten großer Datensätze
#1
Hallo liebe Excel-Kollegen.

Ich komme leider bei einer Excel-Tabelle nicht weiter und hoffe auf euren Rat. Ich vermute, bestenfalls lässt sich das Thema nur mit VBA lösen, darin habe ich aber noch keine Kenntnisse. Falls es eine "normale" Excel-Formel gibt, um zur Lösung zu kommen, wäre das natürlich auch nicht schlecht.

Nun zum eigentlichen Problem. Ich habe eine Tabelle mit einer Auflistung von Belegnummern und den jeweils zugehörigen Artikeln. Insgesamt habe ich ca. 20.000 verschiedene Belegnummern und gesamt ca. 230.000 Zeilen. Ich benötige zu jeder Belegnummer alle möglichen Artikelkombinationen und diese untereinander aufgelistet. Insgesamt kommt man damit auf ca. 3,2 Mio Kombinationen, welche auf Grund der Belege natürlich auch doppelt vorkommen können. Es soll anschließend die Häufigkeit der unterschiedlichen Kombinationen gezählt werden. Mein Problem liegt aber an der durch Excel-Formeln oder VBA erzeugten Automatik, nicht alle 3,2 Mio Kombinationsmöglichkeiten manuell per Formel zusammenzuverketten, sondern dies automatisch erledigen zu lassen. Da das Excel 2010 natürlich auf nur ca. 1 Mio Zeilen begrenzt ist, müsste man das ganze entweder auf 4 Spalten verteilen oder man könnte die Datensätze auch generell teilen und dann die 4 "Gruppen" separat auswerten. Aber ich scheitere derzeit an der Kombinationsformel. Vielen Dank im Voraus für eure Unterstützung. Im Anhang findet ihr eine Beispieldatei mit 2 Belegnummern und den zugehörigen Artikeln. Die Auflistung soll dann etwa wie in Spalte G aussehen.


Angehängte Dateien
.xlsx   Beispieldatei.xlsx (Größe: 10,51 KB / Downloads: 13)
Antworten Top
#2

.xlsx   UndHierAlsDatei.xlsx (Größe: 12,91 KB / Downloads: 9)
Antworten Top
#3
Hallo stromi,

ich nehme an, dass du nur an Zweierkombinationen interessiert bist.

In der Anlage einmal ein kleines Programm, dass die Häufigkeit der auftretenden Kombinationen in Blöcken vorgegebener Länge  ausgibt.
Bei Millionen von Kombinationen kann das etwas dauern.

Das Programm erwartet drei benannte Bereiche (die beliebig in der Datei - auch anderen Blätter- positioniert werden können ohne das Progarmm ändern zu müssen):

1) Bereich "Liste"
In diesem Bereich muss in der ersten Spalte die Belegnummer  und in der zweiten Spalte der Artikel stehen. Die Liste muss sortiert sein.

2) Zelle "Laenge"
mit der Länge der Ausgabeblöcke

3) Zelle "Ausgabe"
Ab hier wird die Ausgabe nach unten und nach rechts eingetragen.

ps. Auf meinem Rechner dauert eine Auswertung bei 250.000 Sätzen und 20.000 Belegnummern:
a) 2,4 Sekunden wenn ich 100 Artikel zufällig den Belegnummern zuordne (mit 5.000 unterschiedlichen Kombinationen)
b) 88 Sekunden wenn ich 1000 Artikel zufällig den Belegnummern zuordne (mit 477.000 unterschiedlichen Kombinationen)


Angehängte Dateien
.xlsm   ArtikelKombinationen.xlsm (Größe: 25,42 KB / Downloads: 7)
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





[-] Folgende(r) 1 Nutzer sagt Danke an Ego für diesen Beitrag:
  • stromi
Antworten Top
#4
Da hält meine Datei nicht ganz mit:

2500 Belegnummern, die im Schnitt 4 Artikel haben (10000 Sätze A:B). Ebenfalls:
10000 heruntergezogene Kombinationen (was nicht reicht, denn bei 4 Artikeln gibt es 6 Kombinationen).

10 Sekunden.

Aber: Sie ist nicht optimiert. Außerdem ist das ganze VBA-prädestiniert.
Antworten Top
#5
Hallo Leute,

vielen herzlichen Dank für eure Unterstützung!

@Ego: Dein VBA ist klasse und top-programmiert. Es scheint ja sogar Doppelkombinationen (A+B und B+A zu berücksichtigen), richtig klasse!
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste