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.

Clusterisierung
#1
Hallo liebes Board, 

vorab, da ich ein Excel Programm für eine Firma schreibe werde ich keine detailierten Informationen geben können aus Gründen der Geheimhaltung.

Im Prinzip geht es darum, dass ca. 2000 Verschiedene Artikel auf 16 unterschiedlichen Paletten Optimal zusammengestellt werden zum Verschicken. Es gibt dabei massenweise Regeln, die ich einzuhalten habe, wie zum beispiel, dass wenn ein bestimmter artikel auf der Palette liegt, nur eine bestimmte Auswahl anderer Artikel dort hinzugestellt werden darf.

Aktuell sieht mein Programm so aus, dass ich sämtliche artikel eingebe, mit Anzahl, und ob Abstandshalter verwendet werden, das Programm ermittelt dann anhand von maximalen Belegungs-variablen, größe der Paletten und der Teile sowie div. Abhänigkeiten von der Artikelzahl die Belegung einer Artikelsorte auf bis zu maximal 7 Paletten. Dazu hab ich das ganze nochmal anhand der mir dadurch ausgegebenen Werte optimale Bestückungs-Formeln definiert. Beispiel:

6 teile gehen auf eine Palette, wenn 7 Teile bestellt werden teilt mir mein Programm das dann so mit, dass 6 teile auf einer Palette und 1 einzeln auf einer anderen liegt, was schwachsinn ist, ergo hab ich´s so geschrieben, dass er mir dann anfängt alles auf die Paletten zu verteilen.... funktioniert ganz gut, bis auf ein paar kleinere Fehler wie z.b.: 25 Teile gehen auf eine Palette, bei 82 teilt er es mir dann auf in 21, 21, 21, 19 anstatt 21, 21, 20,20... aber wurst, das ist nicht das Problem.

Zum eigendlichen Problem:

Bis jetzt ist alles nur sortenrein Sortiert,  aber Bestellungen sehen dann teilweise so aus: Teil A x13 Teil B x1 Teil C x2 .... Platztechnisch gesehen passt alles auf eine Palette, wenn nicht Beschränkungen vorliegen wie ganz oben erwähnt. Daher muss ich Zusammenfügen. Gehen wir jetzt von einem Platz von 6 Teilen aus, welcher Art auch immer, und der Auflistung von vor 2 Sätzen dann soll das Programm mir Rauswerfen: Teil A je 2 mal mit 6 teilen auf eine palette, und auf die dritte Palette Teil A 1x Teil B 2x Teil C 2x.
Es wird übrigends soweit wie ich jetzt das Programm geschrieben habe auch mir angezeigt, auf welcher Palette noch Platz ist und ob auf einer kein Platz mehr vorhanden ist. Nur gibt auch die möglichkeit, dass Teil A eine Palette nicht füllt, Teil B allerdings eine Palette alleine ausfüllt aber dennoch auf A draufpassen würde, so dass ich im endeffekt nur eine Palette habe. 

Ich bin übrigends total unbewandert in der verwendung von VBA, also bitte alternativlösungen^^, hab das restliche Programm auch nur mit =Wenn, Und, Oder, Sverweis und so befehlen geschrieben, Teilweise steht in einer Zelle eine Formel über 12 Zeilen, funktioniert aber....

Zur Lösung des Problems würde ich gerne wie folgt vorgehen, allerdings nimmt der das leider nicht so an wie ich das will, villeicht ist es nicht möglich über diese Vorgehensweise oder ich hab nen Denkfehler.... Kopfweh hab ich ohnehin schon:

Erstmal Sortierung nach Größe:
Wenn diese größe in dieser matrix enthalten ist, dann den Artikel aus eben dieser Zeile mit Spalten-angabe rausziehen, wenn nicht dann die nächste größe.(insgesammt 20 Zeilen)
Prüfung auf Platz:
Wenn diese größe in dieser matrix enthalten ist, dann den prüfe ob die erste palette voll ist, wenn ja tue nichts, wenn nein ermittle wie viel platz ist, 

und weiter komm ich eh grad nicht, weil ich muss ja dann sowol die vollen paletten ausgeben, wie auch irgendwie die anderen Teile umbasteln auf den ermittelten Platz.

Tut mir Leid für dieses Wirrwar, aber ich schreibe jetzt seid einer Woche 8 h am Tag daran rum und es ist nunmal sehr Komplex, vorallendingen sehr verwirrend.

Nochmehr tut mir die IT-Abteilung leid, die das Programm später auf Java umschreiben darf um es auf SAP einzubinden  :19:

Liebe Grüße und vorab schonmal danke
Antworten Top
#2
Scheint mir eher eine Aufgabe als eine Frage zu sein.
Ich kenne jemand die das sehr gut  lösen kann.
Seine Name ist jedoch geheim.

Für Geheime ist ein Forum (warum auch so genennt ?) nicht geeignet.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#3
naja, vielmehr hab ich darauf gehofft, dass jemand schreibt: Hey, versuch es doch mal mit der Funktion oder so, villeicht hat ja jemand ne gute idee dazu... oder ähnliches.

tut eigendlich nix zur Sache, aber hier mal ein Beispiel aus meinem Programm was ich da für ein Wirrwar drinstehen hab, aber es funktioniert und das ist die hauptsache, also her mit den Ideen!, bitte^^:

=WENN($H5="","",ZÄHLENWENN($H5,"?????????????????????")+ZÄHLENWENN($H5,"??????????????????????????")+ZÄHLENWENN($H5,"??????????????????????")+ZÄHLENWENN($H5,"??????????????????")+WENN($K5=$H5,ZÄHLENWENN($K5,"?????????????????????")+ZÄHLENWENN($K5,"??????????????????????????")+ZÄHLENWENN($K5,"??????????????????????")+ZÄHLENWENN($K5,"??????????????????"),0)+WENN($N5=$K5,ZÄHLENWENN($N5,"?????????????????????")+ZÄHLENWENN($N5,"??????????????????????????")+ZÄHLENWENN($N5,"??????????????????????")+ZÄHLENWENN($N5,"??????????????????"),0)+WENN($E16=$N5,ZÄHLENWENN($E16,"?????????????????????")+ZÄHLENWENN($E16,"??????????????????????????")+ZÄHLENWENN($E16,"??????????????????????")+ZÄHLENWENN($E16,"??????????????????"),0)+WENN($H16=$E16,ZÄHLENWENN($H16,"?????????????????????")+ZÄHLENWENN($H16,"??????????????????????????")+ZÄHLENWENN($H16,"??????????????????????")+ZÄHLENWENN($H16,"??????????????????"),0)+WENN($K16=$H16,ZÄHLENWENN($K16,"?????????????????????")+ZÄHLENWENN($K16,"??????????????????????????")+ZÄHLENWENN($K16,"??????????????????????")+ZÄHLENWENN($K16,"??????????????????"),0)+WENN($N16=$K16,+ZÄHLENWENN($N16,"?????????????????????")+ZÄHLENWENN($N16,"??????????????????????????")+ZÄHLENWENN($N16,"??????????????????????")+ZÄHLENWENN($N16,"??????????????????")))

... das ist übrigends die Funktion um zu ermitteln, wie viele paletten ich für ein Teil brauche, die restlichen funktionen sehen nicht gerade besser aus
Antworten Top
#4
Hallo BZeo,

von meiner Seite einmal zwei Anmerkungen:

zu:
Zitat:Ich bin übrigends total unbewandert in der verwendung von VBA, also bitte alternativlösungen

Wenn nicht VBA, dann versuch es doch einmal mit dem Solver. Du brauchst dann deine Nebenbedinungen nur einfach eintragen. Blush

zu:
Zitat:...werde ich keine detailierten Informationen geben können aus Gründen der Geheimhaltung. ...
...Nochmehr tut mir die IT-Abteilung leid, die das Programm später auf Java umschreiben darf um es auf SAP einzubinden...
 

Wäre es nicht einfacher die Aufgabe der Umsetzung direkt einem IT-Analysten zu geben. Auf jeden Fall ist es für einen Analysten einfacher aus einer vernünftigen und vollständigen Beschreibung der Aufgabe inklusive der Nebenbedingungen ein Programm zu schreiben, als aus einem komplexen Excelmodell mit verrückten Formeln.
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
#5
Früher hat eine Firma für so etwas 100, 200 oder 300 Tausend Euro ausgegeben, ohne auch nur zu zucken.

Heute wird anscheinend 1. nichts mehr ausgegeben und 2. die Planung der EDV dem Gabelstaplerfahrer überlassen.

Muss ich da noch durchsteigen?
Antworten Top
#6
Hallo Lupo

Danke für den Spruch des Tages. :19:

Und an den Gabelstaplerfahrer:
Zitat:Nochmehr tut mir die IT-Abteilung leid, die das Programm später auf Java umschreiben darf um es auf SAP einzubinden
Erst tausende Mannstunden in die Excel-Lösung stecken um dann noch mal tausende Mannstunden in die Java-Lösung zu stecken um es dann in SAP einzubinden?
Da könnt ihr doch gleich einen SAP-Service-Provider beauftragen.
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Antworten Top
#7
(13.04.2017, 14:18)BZeo schrieb: vorab, da ich ein Excel Programm für eine Firma schreibe werde ich keine detaillierten Informationen geben können aus Gründen der Geheimhaltung.
Ja, ne, schon klar. Alle Welt soll Dir helfen, aber es bleibt natürlich alle Welt. Also sollen die kostenlos Arbeitenden dies kurzerhand auch noch unter erschwerten Bedingungen tun.

Merkst Du eigentlich noch was?
Antworten Top
#8
sagt mal, habt ihr irgendwie alle garen schmerzen, seelische probleme oder hemoriden? ich will keine dummen sprüche hören, auch nicht was man hätte stattdessen tun können, sondern ein paar vorschläge, ideen oder etwas was mir weiterhilft. wenn ihr nix dazu beizutragen habt, dann verkneift euch doch bitte einfach die kommentare.
community 1/10

...

ich dachte wenigstens, dass es hier moderatoren gibt die unnötiges gespame im keim ersticken, dem is wohl nicht so.
wahrlich enttäuchend
Antworten Top
#9
Dann versuch mal:

=WENN($H5="","",ZÄHLENWENN($H5,"!!!!!!!!!!!!!!!!!!!!!")+ZÄHLENWENN($H5,"!!!!!!!!!!!!!!!!!!!!!!!!!!")+ZÄHLENWENN($H5,"!!!!!!!!!!!!!!!!!!!!!!")+ZÄHLENWENN($H5,"!!!!!!!!!!!!!!!!!!")+WENN($K5=$H5,ZÄHLENWENN($K5,"!!!!!!!!!!!!!!!!!!!!!")+ZÄHLENWENN($K5,"!!!!!!!!!!!!!!!!!!!!!!!!!!")+ZÄHLENWENN($K5,"!!!!!!!!!!!!!!!!!!!!!!")+ZÄHLENWENN($K5,"!!!!!!!!!!!!!!!!!!"),0)+WENN($N5=$K5,ZÄHLENWENN($N5,"!!!!!!!!!!!!!!!!!!!!!")+ZÄHLENWENN($N5,"!!!!!!!!!!!!!!!!!!!!!!!!!!")+ZÄHLENWENN($N5,"!!!!!!!!!!!!!!!!!!!!!!")+ZÄHLENWENN($N5,"!!!!!!!!!!!!!!!!!!"),0)+WENN($E16=$N5,ZÄHLENWENN($E16,"!!!!!!!!!!!!!!!!!!!!!")+ZÄHLENWENN($E16,"!!!!!!!!!!!!!!!!!!!!!!!!!!")+ZÄHLENWENN($E16,"!!!!!!!!!!!!!!!!!!!!!!")+ZÄHLENWENN($E16,"!!!!!!!!!!!!!!!!!!"),0)+WENN($H16=$E16,ZÄHLENWENN($H16,"!!!!!!!!!!!!!!!!!!!!!")+ZÄHLENWENN($H16,"!!!!!!!!!!!!!!!!!!!!!!!!!!")+ZÄHLENWENN($H16,"!!!!!!!!!!!!!!!!!!!!!!")+ZÄHLENWENN($H16,"!!!!!!!!!!!!!!!!!!"),0)+WENN($K16=$H16,ZÄHLENWENN($K16,"!!!!!!!!!!!!!!!!!!!!!")+ZÄHLENWENN($K16,"!!!!!!!!!!!!!!!!!!!!!!!!!!")+ZÄHLENWENN($K16
,"!!!!!!!!!!!!!!!!!!!!!!")+ZÄHLENWENN($K16,"!!!!!!!!!!!!!!!!!!"),0)+WENN($N16=$K16,+ZÄHLENWENN($N16,"!!!!!!!!!!!!!!!!!!!!!")+ZÄHLENWENN($N16,"!!!!!!!!!!!!!!!!!!!!!!!!!!")+ZÄHLENWENN($N16,"!!!!!!!!!!!!!!!!!!!!!!")+ZÄHLENWENN($N16,"!!!!!!!!!!!!!!!!!!")))
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#10
@snb

Dein Vorschlag wird nicht funktionieren Smile
Tabellenblattname: Tabelle1
AB
1a3
2aa0
3aaa
4bbb
5bbb
6b

Benutzte Formeln:
B1:  =ZÄHLENWENN($A$1:$A$6;"???")
B2:  =ZÄHLENWENN($A$1:$A$6;"!!!")
von schauan
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


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