21.06.2024, 07:49 (Dieser Beitrag wurde zuletzt bearbeitet: 21.06.2024, 07:51 von Kosch.)
Ich habe mal ein kleines Problem ...
Es gibt eine Datei1 mit einer Tabelle1. Da sind in Spalte 1 Artikel drin. In einer Spalte C steht drin ob es ein "Verschleißteil" oder ein "Ersatzteil" oder keines "n/a" ist. Oder die Zelle ist noch frei. Die Tabelle enthält alle Teile der Maschine nach Baugruppen, Untergruppen usw. Deshalb ist sie sehr lang. Teilweise 40.000 - 50.000 Zeilen. Und viele Teile (z.B. Schraube M8x40) tauchen zig mal auf, da sie in vielen Bauteilen verbaut sind. Allen Teilen soll jetzt zugewiesen werden ob sie "Verschleißteil", "Ersatzteil" oder "n/a" sind.
Eine wirklich aufwendige Arbeit, die wir aber schon an einigen Maschinen gemacht haben.
Es gibt also eine Datei2 mit einer Tabelle, ich nenne sie auch mal Tabelle2, die schon fertig ist.
Jetzt ist meine Idee: Gehe in Tabelle1 nimm die erste Artikelnummer, klappere die Tabelle2 ab, wenn es den Artikel gibt, füll das Feld "Verschleiß, Ersatz..." entsprechend aus (wenn noch nichts drin steht) Nimm das nächste Teil aus Tabelle1 und schau wieder in Tabelle2 ob es das gibt usw.
Das ist natürlich viel Aufwand, weil viele Teile mehrfach geprüft wird, aber sollte programmtechnisch die einfachste Version sein.
Habe aber keinen Ansatz... Kann mir jemand einen Tipp geben ?
Geht das mit einer Formel (wäre mir das liebste) oder Makro oder VBA ?
Gut ist auch, daß die Spalten nebeneinander gleich zeigen, welche Zeilen noch offen sind (weil leer) und bearbeitet werden müssen.
Jetzt kann ich die auszufüllende Datei mit verschiedenen fertigen Dateien abgleichen. Die folgende Idee ist eine eigene Datei aufzubauen, wo alle Teile die wir haben einfach reingeschrieben werden, die ab und zu gefüttert wird. Und dann neue Projekte nur noch mit dieser Datei abgeglichen werden.
Hat alles soweit super geklappt (auch dank des Forums !) und die Referenztabelle (mit allen Teilen über alle Maschinen) funktioniert auch und kann einfach mit neuen Maschinen ergänzt werden, alle Dupletten werden rausgefiltert. Hätte nie gedacht, daß Excel solange rechnen kann Aber ok, tausende Zeilen löschen und alle Formeln und Bezüge neu anpassen, dauert eben.
aber jetzt habe ich doch eine kleine Frage ...
Ich berechne in einer Zelle G2 die letzte Zeile der Tabelle mit =ANZAHL2(A:A) sagen wir 12345 Jetzt möchte ich in einer anderen Zelle ein Array beschreiben, derzeit von A2:A50000. Ziehe ich die Formel in der Spalte nach unten lande ich z.B. bei A5000:A54998. Das ist auch korrekt und funktioniert. Die Tabelle verlängert sich aber stetig und damit auch die letzte Zeile, die ich aber ja in G2 habe. Wie muß ich das Array formatieren, daß es im Prinzip so aussieht (funktioniert aber leider nicht): A2:A($G$2) also A2:A12345 Und wenn ich es runterziehe zu A5000:A12345. Habe alles mögliche probiert... Meist ist der Fehler dann #NAME?
da waren die Kollegen offenbar mit ihren formellösungen schneller. Hier mal ein Makro Lösung. Das makro läuft aber nur, wenn man die Tabelle2 in dieses Beispiel kopiert. Die habe ich gelöscht! Beide zusammen waren zum hochladen zu gross.
Der Vorteil ist, man kann bei mir in Zelle D1 einen Teiltext eingeben, nach dem gefiltert wird. z.B. "Haube" oder "Haube 1", dann bekommt man nur die Hauben gefiltert.
Wenn du noch weitere Dateien mit Maschinen hast könnte man die auch ins Beispiel kopieren. Ich habe nur vergessen für das makro einen Button einzufügen.
Vielen Dank für die Hilfe hier! Um die Referenzdatei aufzubauen, habe ich noch ein kleines Problem, das jetzt erst aufgetaucht ist, weil unsere Datenbank von der ich die Listen bekomme nicht konsistent ist. Der Plan war, die neu einzufügende Liste einfach an die Referenz hinten dranzuhängen. Dann schauen, ob es das Teil oben schon gibt und zu klassifizieren. Dazu bekommen die gleichen Teile einen Zähler in einer extra Spalte (der oben in der Tab z.B. 10 ist und beim letzten auftauchen dann 1. Dann gibt es eine andere Spalte, wo ich für alle Zeilen, wo dieser Zähler nicht 1 ist, "doppelt" reinschreibe. Dann filtere ich die Tabelle nach "doppelt", und lösche alle diese Zeilen. Erledigt! (s. Screenshot) Da bei doppelten Teilen aber die 1 ganz unten steht, lösche ich mit diesem Verfahren die Zeile oben in der Tabelle. Wenn alles konsistent wäre, wäre das kein Problem. Es ist aber nicht konsistent, und ich versaue mir die richtigen Daten oben.
Jetzt gibt es (denke ich) zwei Möglichkeiten: 1. Die Tabelle von unten nach oben suchen lassen oder 2. Oder das "doppelt" bei dem höchsten Zähler für das Teil wegzulassen und dafür bei 1 wieder einzutragen (wo es jetzt ja fehlt). Das Problem dabei: Teile die es nur einmal gibt dürfen kein "doppelt" bekommen, sondern eben nur solche, die mehrfach auftreten.
Und an der Stelle weiß ich leider nicht weiter. Vielleicht kann mir jemand von Euch einen Denkanstoß geben.
Ich habe das Problem gelöst, indem ich die einzufügende Tabelle nicht hinten anhänge, sondern oben einfüge. Wenn man weiß, wie man 15000 Leerzeilen einfügt, ist es ganz einfach und das Problem ist umgehend gelöst. Das mit den Leerzeilen habe ich gefunden ...