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.

Excel komplexe Kombinationenmöglichkeiten zählen!
#1
Hallo zusammen,

ich als neues Mitglied dieses Forums, werde zukünftig aufgrund meines neuen Jobs öfter von mir hören lassen.

Ich halte es kurz und habe folgendes Problem:

In meiner Excel Datei befinden sich unzählige Kunden die alle Produkte besitzen. Es gibt die Produkte A bis O und ich muss wissen, wie viele Kunden z.B. die Produkt-Kombi A & B (analog auch B&A was ja dasselbe wäre), A & C, A&C&C&O&F usw. besitzen.

Das heißt Ergebnis müsste sein, dass ich am Ende eine Liste habe in der ablesbar ist wie viele Kunden jegliche gleiche Kombinationen (egal ob es nur eine zweier Kombi oder 6er Kombi) ist besitzen.

PS: Ich weiß es gibt hier zahlreiche Topics dazu, ich verstehe sie allerdings nicht, und finde auch keine die exakt mein Problem beschreibt!

Ich hoffe auf rasche Hilfe & bedanke mich schon mal vielmals bei allen die mir helfen können!

Liebe Grüße
Alexander
Antworten Top
#2
Hallo Alexander,

(02.06.2017, 10:51)Alexander92 schrieb: ich als neues Mitglied dieses Forums, werde zukünftig aufgrund meines neuen Jobs öfter von mir hören lassen.

Von mir bekommst Du jetzt schonmal die goldene Regel zu hören. Ein Problem lässt sich meist mit einer Beispieldatei, die falls nötig, anonymisiert wurde, viel leichter beschreiben und verstehen. Ausserdem muss ein potentieller Helfer deine Tabelle nicht nachbauen. Zum einen ist dies sehr aufwendig, zum Anderen sieht das Original dann doch meist etwas anders aus, was dann zu Anapssungen im Nachhinein führt.

Essenz: Bitte eine .xlsx-Datei mit gewünschter Lösung, händisch eingetragen, hochladen.

Ansonsten natürlich, willkommen im Forum ;)
Gruß Jonas
Antworten Top
#3
Bitte verhalte Dich tatsächlich so, wie Jonas es sagt.

Eine Frage wäre da schon mal:

Wenn gefragt wird, wieviele Kunden A und B haben, haben wir dann hier 2 (weil "enthalten") oder 1 (weil "identisch")?

Kunde1: A B C
Kunde2: A B
Antworten Top
#4
Ok, da hätte ich selber drauf kommen können! Also ab sofort mit Beispiel...

Bei Kunde 1: A,B,C
     Kunde 2: A,B

Hätten wir in dem Fall 2 Kunden mit der Produkt-Kombi A & B haben. Ein Kunde hat die Kombi A&B&C.

Ich könnte somit eine Tendenz ableiten, welche Produkte am Ende zusammen sinnig verkauft werden könnten.

Liebe Grüße
Alex


Angehängte Dateien
.xlsx   Test.xlsx (Größe: 8,44 KB / Downloads: 14)
Antworten Top
#5
Hallo Alex,

ich hätte da die ein oder andere Frage.

Ist das exakt der Aufbau deiner Originaldatei? Wo kommen die Daten her, Import? Sind die Trennzeichen immer die selben? Wären Hilfsspalten denkbar? Wäre Power Query denkbar? Wäre VBA denkbar?
Gruß Jonas
Antworten Top
#6
Sad 
Genau, die Daten/Wörter sind alle durch ein Komma getrennt und ein Import. Ich hatte auch schon mal rum getüfftelt und alles auf separate Zellen aufgeteilt.
Power Query und VBA sagt mir leider nichts :(
Antworten Top
#7
Hallo Alex,

dass Du von VBA noch nie was gehört hast, macht die Sache jetzt nicht einfacher. Aber Du kriegst das hin ;)

Anhand deiner Aussagen zum Thema VBA, gehe ich nicht davon aus, dass Du die Registerkarte "Entwicklertools" aktiv hast. Also:
1. Mache unten wo deine Tabellenblätter aufgelistet sind einen Rechtsklick auf einen Tab.
2. Klicke auf Code anzeigen.
3. Es hat sich ein neues Fenster geöffnet. Hier klickst Du oben im Menüband auf Einfügen und auf Modul.
4. Es hat sich wieder ein kleineres Fenster (Weißer Hintergrund) innerhalb des neuen Fensters geöffnet. Hier fügst Du den folgenden Code an:

Code:
Option Explicit

Public Function AnzahlKombination(rngBereich As Range, varSearchstring As Variant) As Long
   Dim rngZelle As Range
   Dim i As Long
   Dim lngCounter As Long: lngCounter = 0
   Dim booContainsAll As Boolean
   Dim arrSplitted
   
   arrSplitted = Split(varSearchstring, ",")
   
   For Each rngZelle In rngBereich
       booContainsAll = True
       
       For i = LBound(arrSplitted) To UBound(arrSplitted)
           If Not (InStr(1, rngZelle.Value, arrSplitted(i)) > 0) Then booContainsAll = False
       Next i
       
       If booContainsAll Then lngCounter = lngCounter + 1
   Next rngZelle
   
   AnzahlKombination = lngCounter
End Function

Jetzt kannst Du das Fenster wieder schließen. Du kannst die Funktion jetzt ganz normal im Tabellenblatt verwenden. Also so:

Tabelle1

ABCDE
1KRNProdukteKombinationenAnzahl
2a1,2,3,61,24
3b2,4,61,2,33
4c2,11,2,3,63
5d6,32,43
6e3,22,34
7f1,2,3,4,5,6
8g3,4,6,5,1,2
Formeln der Tabelle
ZelleFormel
E2=AnzahlKombination($B$2:$B$8;D2)
E3=AnzahlKombination($B$2:$B$8;D3)
E4=AnzahlKombination($B$2:$B$8;D4)
E5=AnzahlKombination($B$2:$B$8;D5)
E6=AnzahlKombination($B$2:$B$8;D6)

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

Du darfst jetzt allerdings deine Datei nicht mehr als .xlsx sonder als .xlsm speichern.
Gruß Jonas
Antworten Top
#8
Hallo Alex,

hier noch einige Fragen:

1) Für Jonas Lösung müssen die gesuchten Kombinationen vorgegeben werden, ist das so richtig, oder sollen alle vorhandenen Kombinationen ermittelt werden?

2) Wieviel ist denn bei dir unzählig?

3) Gibt es eine maximale Anzahl von Produkten je Kunde oder soll das auch vom Programm ermittelt werden?

4) Denkst du es sind weniger als 1.048.576 Kombinationen vorhanden? (Falsch wenn ein Kunde mehr als 20 Produkte hat)
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.





Antworten Top
#9
Wow! Zunächst vielen VIELEN Dank für die Hilfe!!!!

  1. Genau, das wäre noch wichtig. Es müsste noch herausgefunden werden, welche Kombinationsmöglichkeiten es gibt, diese sind also nicht vorgegeben. Die vorhandenen Kombis müssten also ermittelt werden.
  2. Es handelt sich um ca. 22 Produkte die je von 2600 Kunden unterschiedlich bezogen werden können. Manche haben nur 2 davon, andere 6 usw.
  3. Ich denke, es gibt eine Hand voll Kunden die alle 22 Produkte haben, auch hier wäre eine Ermittlung sinvoll
  4. Es sind definitiv weniger, da wirklich nur ein geringer Teil mehr als 8 Produkte gleichzeitig bezieht
Eine Frage noch zur Formel: Ich habe diese zwar bei bei Code und dann Modul eingefügt, zurück in der Tabelle wird mir diese aber sobald ich das = in die Zelle mache nicht angezeigt als "KombinationenAnzahl".

Liebe Grüße und nochmals vielen Dank! Ich hoffe wir finden eine Lösung :)
Antworten Top
#10
Hallo Allex,

in der Anlage eine erste Beispieldatei und hier noch Anmerkungen:

a) Deine Aussagen zu den Fragen 3 und 4 passen nicht zusammen.
Wenn ich einen Kunden mit 22 Produkten habe, kann ich allein für diesen mehr als 4 Millionen Kombinationen von Produkten erstellen.

b)Begrenzung
Ich habe in der Anlage:
1. Die Anzahl der Ausgabezeilen auf 1.000.000 begrenzt (da Excel noch nicht sehr viel mehr kann; das kann man im Kopf des Programmes anpassen)
2. Die "maximale Anzahl von Produkten in Kombinationen" als Parameter vorgebbar realisiert.
Achtung! Dieser Parameter hat eine grosse Auswirkung auf die  Laufzeit des Programmes und auf die Anzahl der Ausgabezeilen.

c) zur Benutzung
Da ich im Programm ungern mit festen Adressen arbeite benötigt das Programm zur Zeit drei benannte Bereiche.
1) Ein benannter Bereich "Liste" mit den Eingangsgrössen. (In der ersten Zeile Überschriften und in der zweiten Spalte die Produkte dur Kommata getrennt)
2) Eine benannte Zelle "AnzProd" für die Vorgabe der "maximale Anzahl von Produkten in Kombinationen".
3) Eine benannte Zelle "Ausgabe" ab der die Ergebnisse geschrieben werden.
Vor einem Lauf müssen die Ergebnisse der letzten Berechnung zur Zeit noch manuell gelöscht werden.
Ich habe (zur Zeit in Zelle E1) eine Funktion eingebaut. Wenn man sie nach einem Lauf bis ans Ende der Ausgabe kopiert, kann man die Ausgabe leicht nach der Anzahl der Produkte in einer Kombination sortieren.


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





Antworten Top


Gehe zu:


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