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.

Tabellen Vergleichen und ersetzen
#1
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 ?

Danke!


Angehängte Dateien
.xls   Tabelle1.xls (Größe: 473,5 KB / Downloads: 7)
.xlsx   Tabelle2.xlsx (Größe: 471,61 KB / Downloads: 7)
Antworten Top
#2
Hola,
in einer Hilfsspalte:
Code:
=WENN(C2="";WENNFEHLER(SVERWEIS(A2;[Tabelle2.xlsx]Tabelle2!$A$2:$C$50000;3;0);"");C2)
Danach die Daten kopieren und als Werte ab C2 einfügen.
Gruß,
steve1da
Antworten Top
#3
Super! Thumps_up Und so schnell!
Vielen Dank!

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.

Das probiere ich jetzt erst mal selber. 

DAAANKE!
Antworten Top
#4
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  31  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?

Danke !
Thomas
Antworten Top
#5
Code:
A2:INDEX(A:A;G2)
Antworten Top
#6
Danke! 
Werde ich ausprobieren.

Mit Index hatte ich auch rumprobiert, aber irgendwie hatte es auch nicht so richtig funktioniert, oder ich war zu blöd.

Thomas
Antworten Top
#7
Code:
Sub M_snb()
  sn = Workbooks("Tabelle2.xlsx").Sheets(1).Cells(1).CurrentRegion
  sp = Workbooks("Tabelle1.xls").Sheets(1).Cells(1).CurrentRegion
 
  With CreateObject("scripting.dictionary")
    For j = 2 To UBound(sn)
        .Item(sn(j, 1)) = sn(j, 3)
    Next
 
    For j = 2 To UBound(sp)
      sp(j, 3) = .Item(sn(j, 1))
    Next
  End With
 
  Workbooks("Tabelle1.xls").Sheets(1).Cells(1).CurrentRegion = sp
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#8
Hallo

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.

mfg Gast 123


Angehängte Dateien
.xls   Tabelle Lagerliste.xls (Größe: 633 KB / Downloads: 0)
Antworten Top


Gehe zu:


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