Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1604to1608
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
Inhaltsverzeichnis

Materialüberschneidungen Stücklisten

Materialüberschneidungen Stücklisten
01.02.2018 15:28:29
stef26
Hallo und Grüß Gott an alle Formushelfer,
ich hab da ein kleines Problem, bei dem ich nicht genau weiß wie ich es realisieren kann und auf eure Ideen hoffe.
Ich habe bei mir in der Arbeit ca. 1500 Stücklisten von Produkten.
Diese enthalten im Durchschnitt ca. 150 Materialpositionen.
Die Stücklisten sind so aufgebaut, dass in Spalte A das Produkt steht und in Spalte B die Materialnummern für das Produkt.
Meine Aufgabe ist es nun eine Zusammenstellung von Produkten (Cluster) zu bilden.
a) Es sollen die Produkte zusammen gelegt werden, die in den Stücklisten sehr viele gleiche Positionen enthalten.
b) Die Anzahl der Positionen dürfen eine Gesamtanzahl von 300 nicht übersteigen.
Beispiel:
Produkt A: Mat: 11111
Produkt A: Mat: 22222
Produkt A: Mat: 33333
Produkt A: Mat: 44444
Produkt A: Mat: 55555
Produkt B: Mat: 11111
Produkt B: Mat: 77777
Produkt C: Mat: 11111
Produkt C: Mat: 22222
Produkt C: Mat: 33333
Produkt C: Mat: 44444
Produkt C: Mat: 66666
Produkt C: Mat: 77777
Produkt D: Mat: 12345
Produkt D: Mat: 23456
Produkt D: Mat: 34567
Produkt D: Mat: 45678
Produkt E: Mat: 22222
Produkt E: Mat: 33333
Produkt E: Mat: 44444
Produkt E: Mat: 66666
Produkt E: Mat: 12345
Produkt E: Mat: 23456
Ich gebe in einem 2ten Tabellenblatt ein Produkt an.
Z.B. Produkt A
Nun soll er mit aufsteigend die Produkte nennen, die die meisten Übereinstimmungen im Material mit der Eingegebenen Produkt haben.
Das wäre in diesen Fall zuerst Produkt C mit 4gleichen Positionen und einer ungleichen.(6666)
Das nächste Produkt wäre E mit 2 zusätzlichen neuen Posititon. (6666 ist bereits aus Produkt C in der Gesamtliste enthalten)
Somit 8 Gesamtpositionen.
So sollte dann die Liste erzeugt werden:
Eingabe: Produkt A
Ergebnis:
Produkt A: Pos:5
Produkt C: Übereinstimmung:4 GesamtPos:6
Produkt E: Übereinstimmung:3 GesamtPos:8
usw. bis GesamtPos:300 erreicht ist
Ich hoffe ich habe es nicht zu kompliziert erklärt.
Liebe Gruesse
Stefan

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pivot? Autofilter?
01.02.2018 21:36:30
Fennek
Hallo Stefan,
hast du mit den beiden genannten XL Funktion getestet? Zumindest die Anzahl der Materialien pro Produkt sollte so einfach zu ermitteln sein.
Ansonsten: Beispieldatei.
mfg
AW: Pivot? Autofilter?
02.02.2018 17:11:42
stef26
Hallo Fennek,
danke schon mal für deine Rückmeldung.
Ich denke nicht dass ich das mit Formeln hin bekomme, da hier das Problem ist, dass man aus den verschieden Zusammengestellten Produkten eine Gesamtstückliste (Clusterstückliste) erstellen muss damit man die Übereinstimmungen zu Clusterliste auflisten kann.
Ich denke das bekommt man nur mit Makros hin und dazu fehlt mir leider die Erfahrung.
Ich hab mal eine Beispieldatei zum hochgeladen vielleicht hilft diese etwas weiter.
https://www.herber.de/bbs/user/119501.xlsx
Ich hoffe es ist klar wie ich es beschrieben habe.
Liebe Gruesse
Stefan
Anzeige
AW: Verion 1
02.02.2018 18:46:15
Fennek
Hallo Stefan,
so ganz habe ich den Unterschied zwischen "Überschneidung" und "Gesamtposition" nicht verstanden. Vermutlich findet der Makro die "Überschneidungen".
Die Produktnummer wird von Hand in B1 (aktuell: 467860) eingegeben. Der Makro muss in Sheet "Stücklisten" gestartet werden.

Sub iFen()
Dim MatNr() As String
Range("J1:Q1000").Clear
With Sheets("Stücklisten").Cells(1, 1).CurrentRegion
.AutoFilter 1, Sheets("Auswertung").Cells(1, 2)
.Copy Cells(1, 10)
.AutoFilter
Mat = Application.Transpose(Range("K2:K" & Cells(1000, 10).End(xlUp).Row))
ReDim MatNr(LBound(Mat) To UBound(Mat))
Debug.Print LBound(Mat)
For i = 1 To UBound(Mat)
MatNr(i) = CStr(Mat(i))
Next i
Debug.Print UBound(MatNr), MatNr(2)
.AutoFilter 2, Array(MatNr), Operator:=xlFilterValues
.Copy Cells(1, 13)
.AutoFilter
End With
With CreateObject("Scripting.Dictionary")
For i = 2 To Cells(Rows.Count, 13).End(xlUp).Row
.Item(Cells(i, 13).Value) = .Item(Cells(i, 13).Value) + 1
Next i
Range("P1").Resize(.Count, 2) = Application.Transpose(Array(.keys, .items))
End With
'Sortieren
Range("P1").CurrentRegion.Sort Range("Q1"), xlDescending, , , , , , xlNo
i = 1
Do While Cells(i, 14) > 9
i = i + 1
Loop
Range("P1:Q" & i).Copy Sheets("Auswertung").Cells(100000, 1).End(xlUp).Offset(1)
Range("J1:Q1000").Clear
End Sub
Ist die "Gesamtposition" einfach die Anzahl der Produktnummern in der Stückliste? (Auswertung mit Pivot)
Es gibt sicher noch einigen Änderungsbedarf.
mfg
Anzeige
AW: Verion 1
03.02.2018 08:29:12
stef26
Guten Morgen Fennek,
lieb von dir das du dir mein Problem annimmst.
Ich hab das Makro mal getestet. Danke das Makro trifft die Sache schon sehr gut. Super!
Das Makro bewertet die Übereinstimmungen zu dem vorgegebenen Produkt.
Nun müsste das Makro die Stücklistenpositionen des vorgegebenen Produktes mit dem Produkt mit den meisten Übereinstimmungen zu einer Gesamtstückliste (ggf. in einem neuen Tabellenblatt) zusammenführen,
so dass keine doppelte Materialnummern vorkommen. Die Anzahl der nun neuen Gesamtstückliste (ich nenne sie auch Clusterliste) ist die Gesamtposition.
Genau hier müsste dann die Berechnung (Schleife) von vorne starten. D.h. ich suche im zweiten Schritt das Produkt, welches mit der Clusterliste die meisten Überschneidungen hat.
Diese Schleife sollte solange laufen bis die Anzahl der erzeugten Clusterliste bei 300 angekommen ist.
Scheisse ist das kompliziert Erklärt. Aber irgendwie hoffe ich das du für mich den 2ten Teil auch noch so super hin bekommst.
Liebe Gruesse
Stefan
Anzeige
AW: Beispiel?
03.02.2018 21:48:54
Fennek
Hallo Stefan,
im Gegensatz zum ersten Teil der Frage, fand ich für den zweiten Teil spontan keinen Ansatz. Ist es möglich in der Datei von Hand ein Beispiel einzutragen?
mfg
AW: Beispiel?
03.02.2018 23:53:13
stef26
Hallo Fennek,
cool das du zu später Stunde noch gewillt bist mir zu helfen. Top.
Ich hab mal versucht es in die Liste einzutragen:
https://www.herber.de/bbs/user/119521.xlsx
GGF. bräuchte man beim ersten Durchlauf nur nach dem Produkt zu suchen, was die meisten Übereinstimmungen hat. Da beim zweiten Durchlauf der Vergleich mit der Clusterliste erfolgen muss.
Liebe Gruesse
Stefan
Anzeige
AW: Liste sortiert
04.02.2018 10:13:46
Fennek
Hallo Stefan,
meine Liste der "ersten Stufe" liefert eine sortierte Liste!
Heute werde ich den PC nicht hochfahren, morgen sehe ich es mir noch einmal. Dann werde ich mich entscheiden, ob ich mich mit den Thema noch einmal beschäftigen möchte.
mfg
AW: Liste sortiert
04.02.2018 11:11:35
stef26
Hallo Fennek,
ist schon ok. Vielen Dank für deinen ersten Code.
Ich werde noch versuchen das mit dem 2ten Teil per Pivottabelle zu lösen.
Dann bekomme ich das glaub ich schon hin.
Ich muss mich nur einlesen wie ich Pivotabellen eine Auswahl mache, ohne dass da alle Produkte aufgezählt werden, die ausgeblendet werden sollen.
Gruß und nochmals besten Dank
Stefan
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige