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 möglichen Artikelkombinationen innerhalb von Warenkörben generieren
#1
Question 
Hallo zusammen,

nachdem ich in den letzten Tagen das Internet zu diesem Thema durchforstet habe und nicht fündig werden konnte stelle ich meine Frage nun hier und bin gespannt ob Ihr eine Lösung für mein "Problem" habt.

Aufgabenstellung:

Die Verkäufe eines Webshops sollen analysiert werden. Vornehmliches Ziel ist es herauszufinden, welche Artikel zusammen gekauft werden. Die Daten möchte ich später in Gephi importieren und dort analysieren.

Ausgangslage:

Mir liegen alle Warenkörbe eines bestimmten Zeitraums vor. Diese sind wie folgt aufgebaut:

Warenkorbnummer - Bezeichnung des gekauften Artikels

Zwei Warenkörbe als Beispiel:

12345 - Jeans
12345 - T-Shirt
12345 - Socken
54321 - Socken
54321 - Bluse
54321 - Jeans

Aus diesen Daten soll nun jede mögliche Kombination innerhalb eines Warenkorbs generiert werden:

Warenkorb1:

Jeans - T-Shirt
Jeans - Socken
T-Shirt - Jeans
T-Shirt - Socken
Socken - T-Shirt
Socken - Jeans

Warenkorb2:

Socken - Bluse
Socken - Jeans
Bluse - Socken
Bluse - Jeans
Jeans - Socken
Jeans - Bluse

Die Kombinationen sollen im Resultat dann einfach untereinander aufgelistet werden:

Jeans - T-Shirt
Jeans - Socken
T-Shirt - Jeans
T-Shirt - Socken
Socken - T-Shirt
Socken - Jeans
Socken - Bluse
Socken - Jeans
Bluse - Socken
Bluse - Jeans
Jeans - Socken
Jeans - Bluse

Die Anzahl der Artikel im Warenkorb ist dabei nicht begrenzt, wobei mir klar ist, dass ein Wraenkorb mit zu vielen Artikeln die Möglichkeiten von Excel sprengen würde. Vielleicht könnte man hier später noch ein Limit einbauen, so dass nur Warenkörbe mit einer maximalen Anzahl von X Artiklen bearbeitet werden.

Anbei eine Beispieldatei mit den Gedanken die ich mir schon gemacht habe. Ich komme aber nicht über den Punkt hinaus, dass mir alle Kombinationen des ersten Produkts im Warenkorb mit den restlichen Produkten des gleichen Warenkorbs ausgegeben wird.

Beste Grüße und vielen Dank schon einmal vorab
themmm


Angehängte Dateien
.xlsx   Beispiel.xlsx (Größe: 11,7 KB / Downloads: 9)
Antwortento top
#2
Moin,

zeig uns bitte eine Beispieltabelle (mit händisch eingetragenem Wunschergebnis). So geht's: https://www.clever-excel-forum.de/thread-326.html

Hab' gerade gesehen, dass du zwischenzeitlich editiert hast.
Gruß Günter
Misserfolg ist eine Chance, es beim nächsten Mal besser zu machen.
(Henry Ford) www.sprueche-zum-nachdenken.eu
Antwortento top
#3
Hallo themmm,

ich habe deine Tabelle "interaktionen" noch nicht verstanden. Aus deiner Beschreibung hätte ich ein anderes Ergebnis erwartet.
Hier einige Fragen:

1. Mir fehlen zB. Bluse:Socken und Socken:T-Shirt. Ist deine Tabelle richtig und wenn ja warum?
2. Aus welchem Warenkorb kommt T-Shirt:T-Shirt?
3. Warum ist die Kombination Jeans:Jeans zweimal vohanden? Dann müste doch auch Jeans:Socken und Socken:Jeans beide vorhanden sein.
4. Was soll eingetragen werden wenn in einem Warenkorb 5 Jeans sind?
5. Sind denn nicht auch Kombinationen mit drei oder vier Elemente interessant?
6. Was ist denn der Warenkorb in dem Blatt Daten?

In der Anlage einmal eine Beispieldatei aus einer alten Anfrage in der mit einem Makro alle Kombinationen mit bis zu x Elementen und deren Häufigkeit ermittelt wird.


Angehängte Dateien
.xlsm   Kombinationen.xlsm (Größe: 25,28 KB / Downloads: 3)
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.





Antwortento top
#4
Hallo Ego,

besten Dank für deine Antwort.

Die Datei zeigt bis dato folgendes:

Blatt "daten":

Zeile A: Hier wird die Zeile angegeben in der der aktuelle Warenkorb beginnt
Zeile B: Nummer des Warenkorbs (Es sind in dem Beispiel zwei verschiedene Warenkörbe untereinander. So gibt es mir das System aus dem ich exportiere aus)
Zeile C: Rechnungsnummer (Das System aus dem ich die Daten exportiere gibt mir keine fortlaufende Warenkorbnummer. Diese wird aus der Rechnungsnummer generiert)
Zeile D: Produkt/Artikel

Blatt "interaktionen":

Hier sollen die verschiedenen Kombinationen ausgegeben werden und hier stosse ich dann auch an meine bisher eng gesetzten Excel Grenzen. Bis Dato kann ich nur folgendes ausgeben:

Erster Artikel im Warenkorb A - Erster Artikel im Warenkorb A <- Soll so eigentlich nicht auftauchen
Erster Artikel im Warenkorb A - Zweiter Artikel im Warenkorb A
Erster Artikel im Warenkorb A - Dritter Artikel im Warenkorb A
Erster Artikel im Warenkorb B - Erster Artikel im Warenkorb B <- Soll so eigentlich nicht auftauchen
Erster Artikel im Warenkorb B - Zweiter Artikel im Warenkorb B
Erster Artikel im Warenkorb B - Dritter Artikel im Warenkorb B
.
.
.

Benötigt wird von mir aber:

Erster Artikel im Warenkorb A - Zweiter Artikel im Warenkorb A
Erster Artikel im Warenkorb A - Dritter Artikel im Warenkorb A
Zweiter Artikel im Warenkorb A - Erster Artikel im Warenkorb A
Zweiter Artikel im Warenkorb A - Dritter Artikel im Warenkorb A
Dritter Artikel im Warenkorb A - Erster Artikel im Warenkorb A
Dritter Artikel im Warenkorb A - Zweiter Artikel im Warenkorb A
.
.
.

also im Zweifel dann auch:

Jeans - Jeans
Jeans - Jeans
Jeans - Jeans
.
.
.

Es sind nur immer diese Kombinationen interessant, da Gephi aus der Häufigkeit der einzelnen Kombinationen die "Verbindungsstärke" der einzelnen Produkte bestimmt.

Ich habe eine neue Beispieldatei angehängt, welche nun auch das Blatt "Wunschergebnis" enthält.

Besten Dank
themmm


Angehängte Dateien
.xlsx   Beispiel.xlsx (Größe: 12,72 KB / Downloads: 3)
Antwortento top
#5
Hallo themmm,

Ich glaube ich habe verstanden wie die Ausgabe ermittelt werden soll aber nicht deren Informationsgehalt. Den Informationsgehalt zu hinterfragen muss ja auch nicht die Aufgabe eines Helfers in diesem Forum sein. (Ist es aber häufig.)

Zu einer möglichen Lösung.
Es geht sicher auch mit Formeln ich würde aber spätestens wenn mehr als 20 Warengruppen mit mehr als 3 Waren zu erwarten sind eine programmierte Lösung vorschlagen.
Falls du unbedingt auf eine Lösung mit Formeln bestehst, solltest du aber die volatile Funktion INDIREKT vergessen. Sie verschwendet zuviel Lebenszeit.

Ist eine programmierte Lösung für dich in Ordnung?
Wenn ja, solltte berücksichtigt werden, dass die Ergebnisliste auch schon einmal Länger sein kann als Excel Zeilen hat und die Ergebnisse dann in zusätzliche Spalten geschrieben werden?
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.





Antwortento top
#6
Hallo Ego,

ich würde Formeln bevorzugen, aber auch eine programmierte Lösung ist durchaus interessant. Da es ersteinmal ein Test ist, ob diese Art der Auswertung für michfunktioniert, wollte ich es zum testen so einfach wie möglich halten.

Zum Informationsgehalt:

Das Programm Gephi ist ursprünglich dazu gedacht Netzwerke grafisch zu analysieren/darzustellen. Hierzu wird der Netzwerkverkehr zwischen den einzelnen Teilnehmern betrachtet.

Ein Beispiel:

Es gibt in einem Netzwerk mit drei Teilnehmern A, B, C, welche miteinander kommunizieren. Jede Nachricht zwischen den Teilnehmern wird erfasst:

A - B
A - C
B - C
B - C
.
.
.

Jetzt kann ich mit Gephi analysieren wer wie oft mit wem kommuniziert hat und dies grafisch darstellen. Auch ist es möglich eine Gruppenbildung usw. grafisch darzustellen. So kann man dann z.B. feststellen, dass es eine Gruppe aus den Teilnehmern A, B, C gibt die häufig miteinander kommuniziert aber selten mit Teilnehmern der Gruppe E, F, G die wiederrum häufig untereinander kommuniziert.

Auf meine Daten übertragen bedeutet dies folgendes:

Gibt es beim Kauf von Waren Muster die man nachvollziehen kann, wo sind Überschneidungen usw..

Beste Grüße
themmm
Antwortento top
#7
Hallo themmm,

so einfach wie möglich ist für mich die programmierte Lösung. Ausserdem ist sie spätestens bei 1000 Zeilen mehr als 100 mal schneller als eine Formellösung und mehr als 1000 mal schneller als eine Lösung mit Formeln, die die Funktion INDIREKT nutzen.

In der Anlage ein erster Vorschlag und hier einige Bemerkungen.

1. Das Programm wird über den Butto "Tuwat" im Blatt Wunschergebnis gestartet.

2. Da ich nicht gerne mit festen Adressen in Programmen arbeite, benötigt das Programm zur Zeit zwei benannte Zellen, "Liste" und "Ausgabe". Diese Zellen können beliebig in der Datei verschoben werden (auch in andere Arbeitsblätter) ohne das Programm anpassen zu müssen.

3. benannte Zelle "Liste"
Der Bereich um (Zugriff über "CurrentRegion") diese Zelle wird  ab der zweiten Zeile ausgewertet.
In der zweiten Spalte muss die Warengruppe und in der vierten Spalte das Produkt stehen.
Produkte einer Warengruppe müssen immer direkt hintereinander stehen.

4. benannte Zelle "Ausgabe"
Ab hier werden Produktpaare eingetragen. Falls darunter Einträge vorhanden sind, werden sie gnadenlos überschrieben.
Vor dem Eintragen der Ergebnisse einer neuen Berechnung wir der Bereich um "Ausgabe" gelöscht.


Angehängte Dateien
.xlsm   Warenkorb.xlsm (Größe: 27,18 KB / Downloads: 5)
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 Benutzer sagt Danke an Ego für diesen Beitrag:
  • themmm
Antwortento top
#8
Hallo Ego,

wow klasse!

Nach einem ersten Test sieht das wirkliche wirklich gut aus und tut genau das, was ich möchte.

Ich werde mir im Nachgang anschauen wie das VBA aufgebaut ist, da ich auch immer etwas dazu lernen möchte. Als kleines Dankeschön ein erster Output aus Gephi als PDF im Anhang.

Vielen Dank und beste Grüße
themmm


Angehängte Dateien
.pdf   Gephi_Output.pdf (Größe: 500,57 KB / Downloads: 4)
Antwortento top
#9
Moin

Von mir noch eine PQ-Lösung.


Angehängte Dateien
.xlsx   clever-excel-foum_19042.xlsx (Größe: 22,68 KB / Downloads: 5)
Wir sehen uns!
... shift-del
Hinweise zu meiner Hilfe in Foren
Excel Super-Funktionen: VERWEIS(), INDEX(), WAHL()
Antwortento top
#10
Hallo shift-del,

besten Dank. Ich schaue mir deine Lösung heute auch einmal an!

Liebe Grüße
themmm
Antwortento top


Gehe zu:


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