Office - Word, Excel und Co. 9.753 Themen, 41.598 Beiträge

Excel Tabellen zusammenführen und abgleichen

philipp4121 / 6 Antworten / Baumansicht Nickles

Hallo,


hab ein RIESENPROBLEM!
hab eine Excel Tabelle mit ca. 4600 Mitgliedern
(lfd. Nr./Anrede/Titel/VN/NN/PLZ/ORT/Strasse/BEZ/ELKIZ/STATUS/Mail/Tel/Mob)

nun habe ich jedoch eine neuere Tabelle erhalten, die teilweise identische und teilweise neue Daten enthält!


wenn ich diese händisch vergleichen muss, hab ich ne Aufgabe bis zur Pensionierung! Daher hoffe ich dass es einen schnelleren Weg - irgendeine Funktion - dafür gibt!



danke schonmal!


fG


Philipp

bei Antwort benachrichtigen
Borlander philipp4121 „Excel Tabellen zusammenführen und abgleichen“
Optionen
nun habe ich jedoch eine neuere Tabelle erhalten, die teilweise identische und teilweise neue Daten enthält!
Hat die Tabelle eine identische Tabellenstruktur?
Und sind bereits eindeutige Nr. vergeben? Sowie für in beiden Tabellen vorhandenen Personen dei selben Nummern?

Gruß
Borlander
bei Antwort benachrichtigen
philipp4121 Borlander „ Hat die Tabelle eine identische Tabellenstruktur? Und sind bereits eindeutige...“
Optionen

eindeutige Nrn und die struktur ist auch gleich!
jedoch sind in der 1. tabelle manchmal Leere Zellen in der Nrn-Spalte weil ich diese Nrn nicht einfach ändern kann sonder die müssen registriert sein!
jede nummer kommt daher nur 1x vor. und wenn ich die 2 tabellen zusammenfüge, sollen doppelte daten geprüft werden ob in den einzelnen spalten unterschiede bestehen und wenn ja, dann soll das aktualisiert werden.

hoffe jemand versteht mein wirres gerede.

friendly Grüße
Phil


PS: sry für doppeleintrag

bei Antwort benachrichtigen
idefix1968 philipp4121 „Excel Tabellen zusammenführen und abgleichen“
Optionen

Wenn Du kein Makro schreiben willst, könnte man viele Formeln verwenden. Dazu bräuchtest Du aber neben jeder Spalte eine leere Spalte. Aufwendig. Bsp: SVBERWEIS, IDENTISCH oder WENN sind ein Beispiel... WENN(B2=C2;"Identisch";"Abweichung") Hier in diesem Fall sind B und C die zwei abzugleichenden Spalten. Dies nun in jede Zelle herunterziehen, und du weißt ob in B oder C (je nachdem was der Ursprung ist/hier wäre B wohl besser die neue Tabelle) Abweichungen sind durch eine Meldung.
Gruß, Henning

bei Antwort benachrichtigen
philipp4121 idefix1968 „Wenn Du kein Makro schreiben willst, könnte man viele Formeln verwenden. Dazu...“
Optionen

kannst mir vielleicht ein Beispiel Makro reintippseln??
hab das noch nie benutzt und weiß nicht in welcher Sprache oder wie ich die Zellen und dergleichen ansprechen kann

bei Antwort benachrichtigen
idefix1968 philipp4121 „kannst mir vielleicht ein Beispiel Makro reintippseln?? hab das noch nie benutzt...“
Optionen

Die Sprache ist Vísual Basic.
Hier mal ein Mini Makro, daß Fachleute kürzer und einfacher hinbekommen würden. Hat nichts mit dem Thema zu tun, aber nur mal so um den Aufbau zu sehen (Visual Basic Editor).
Dieses Makro macht nichts anderes als zwei Preisspalten miteinander abzugleichen und Meldungen in eine neue Spalte auszugeben ob der Preis zu stark abweicht, etc.
Du gibst zum Start nur Sub und einen Namen für das Makro an. End Sub erscheint automatisch. Dazwischen schreibst Du ähnlich zum früheren Basic Deine Schleifen, etc.

Sub Preis_und_ME_Vergleich()
r = ActiveCell.Row 'r = Zeilenposition des Cursors
s = ActiveCell.Column 's = Spaltenposition des Cursors
sn = ActiveSheet.Name 'sn = Name der aktuellen Tabelle

en = Sheets(sn).Range("A65536").End(xlUp).Row 'en = letzte beschriebene Zeile
If Cells(r, s).Value "EK Neu" Then MsgBox "Cursor nicht auf Spaltenüberschrift EK Neu": Exit Sub

For i = 1 To en - 1
For colindex = 3 To 3
inh1 = Cells(r + i, s).Value 'Inhalt der Spalte EK Neu
inh2 = Cells(r + i, s - 1).Value 'Inhalt der Spalte links von EK Neu
inh3 = Cells(r + i, s + 2).Value 'Inhalt der Spalte Bas-ME
inh4 = Cells(r + i, s + 3).Value 'Inhalt der Spalte Lief-ME

If inh1 = inh2 Then b = "Identisch zu vorher": GoTo auswertung Else
If inh1 = 0 Then b = "Auswerten! Preis fehlt": GoTo auswertung Else
If (inh2 / 100) * 20 20%": GoTo auswertung Else b = "Preis innerhalb 20%": GoTo auswertung

b = "Auswerten! Preisabweichung > 20%"
Next colindex
auswertung:
Cells(r + i, s + 1) = b
Next i

For i = 1 To en - 1
For colindex = 6 To 6
inh3 = Cells(r + i, s + 2).Value 'Inhalt der Spalte Bas-ME
inh4 = Cells(r + i, s + 3).Value 'Inhalt der Spalte Lief-ME

If inh3 = inh4 Then m = "ME OK": GoTo auswertungME
If inh3 inh4 Then m = "Lief-ME weicht von Bas-ME ab": GoTo auswertungME

m = "Lief-ME weicht ab"
Next colindex
auswertungME:
Cells(r + i, s + 4) = m
Next i


End Sub

bei Antwort benachrichtigen
Borlander philipp4121 „kannst mir vielleicht ein Beispiel Makro reintippseln?? hab das noch nie benutzt...“
Optionen

Mach das lieber mit SVERWEIS - das geht schneller...

  1. Lege Dir von Beiden Tabellen eine Arbeitskopie an
  2. Fügen beiden Tabellen eine Spalte zur eindeutigen identifiezierung der Einträge hinzu (ideal ist natürlich die Nr. falls die bei den neuen aktualisierten Datensätzen nicht vorhanden ist könntest Du z.B. aus den einzelnen Namensbestandteilen einen eindeutigen Eintrag basteln)
  3. erstelle in der alten Tabelle eine neue Spalte in der Du mit SVERWEIS prüfst ob ein aktueller Eintrag in der neuen Tabelle vorhanden ist - in dem Fall gibts Du ein x aus, sonst gar nichts
  4. jetzt sortierst Du die Tabelle über Daten / Sortieren... nach der Spalte mit SVERWEIS
  5. die mit dem x markierten Zeilen kannst Du jetzt bequem löschen - übrig bleiben nur die unveränderten "Datensätze"
  6. dann nur nur die neuen "Datensätze" anhängen und fertig :-)



Ich frage mich allerdings warum Du die Datensätze nicht in einer DB verwaltest - das ist wesentlich sinnvoller...


Gruß
Borlander
bei Antwort benachrichtigen