PDA

Vollständige Version anzeigen : Zwei Tabellen vergleichen/"joinen"


Ares_1987
28.02.2008, 11:12
Hallo zusammen,

ich habe ein kleines Problem.

Ich habe zwei Tabellen, die exakt die gleichen Spaltennamen und Anzahl besitzen. Sagen wir mal die eine heißt Main-Tab und die andere Sub-Tab. Die Datensätze werden durch IDs voneinander unterschieden. Aufgabe ist es nun die zwei Tabellen zu "joinen", sag ich mal.

Die Main-Tab muss ich jetzt nun sozusagen als Vorlage benutzen. Ich muss dann immer in der Sub-Tab schauen ob sich bei ner ID der Datensatz unterscheidet! Dies muss ich dann in der Main-Tab in einer Extra Spalte neben dem Datensatz kenntlich machen. Folgende Situationen gibs:
- wenn der Datensatz übereinstimmt soll eine "1" drin stehn
- wenn der Datensatz fehlerhaft übereinstimmt soll ein "F" drin stehn
- wenn der Datensatz in der Sub-Tabelle nicht vorhanden ist soll ein "N" drin stehn
- wenn der Datensatz in der Sub-Tab vorhanden ist, nicht aber in der Main-Tab, den Datensatz in der Main-Tab ergänzen und mit einem "C" kennzeichnen

Hat jemand eine Idee wie ich das mit VBA lösen könnte?
Würde mich über eine Antwort freuen.

Grüße
Ares

Berti_S
28.02.2008, 11:39
Hallo Ares,

sieht die Tabelle so aus:

MainTab SubTab Ergänzung
111 111 1
222 N
333 C in MainTab 333 ergänzen
444 445 F

oder so:

111 111
222 333
444 445


Eigentlich dürfte nur der 1. Ansatz stimmen, ansonsten habe ich Schwierigkeiten mit dem Begriff "fehlerhaft übereinstimmt":
eigentlich kann ich hierfür nur vergleichen, was in Tabelle1 und Tabelle2 die gleiche Spalte und Zeile hat.

Sinnvoll wäre auch eine hochgeladene Demo mit Istzustand und gewünschtem Resultat.

Berti

Ares_1987
28.02.2008, 12:01
Hallo,

erstmal danke für die schnelle Antwort.

Zum besseren verständnis hab ich eine kleine Demo angehängt.

Grüße
Ares

*edit: die krüppelhaften VBA Ansätze bitte einfach ignorieren :-)

Berti_S
28.02.2008, 12:09
Die erste Spalte dient also als Ident-Nr.
Wenn beide Idents übereinstimmen, können in den weiteren Feldern eine oder mehrere Nichtübereinstimmungen auftauchen, daneben können Idents nur in Main oder nur in Sub auftauchen.

So korrekt ?

Ich würde die Resultatsliste in ein neues Sheet schreiben, damit die Daten-Ausgangslage erhalten bleibt.

Bei Nichtübereinstimmungen: welcher Datensatz soll der "korrekte" sein - ich nehme an, der in MainTab.

Ich würde auch die Datensätze, welche nur in "Sub" auftauchen, ans Ende der neuen Liste schreiben.

Berti

Ares_1987
28.02.2008, 12:15
Genau,

wenn ein datensatz in der Main nicht vorhanden ist, soll dieser dort ergänzt werden und mit einem "C" kenntlich gemacht werden. Und wenn ein Datensatz in der Main vorhanden ist, jedoch nicht in der Sub soll dieser mit einem "N" kenntlich gemacht werden.

Ja, es können einer oder mehrere Unstimmigkeiten in den Feldern danach auftreten. Diese werden dann mit einem "F" gekennzeichnet. In diesem Fall stimmt aber die ID logischerweise trotzdem überein!!!

Der Main Datensatz ist meine Primärtabelle! Diese muss dann ergänzt werden!

Ich hoffe das war verständlich :-)

Gruß
Ares

Berti_S
28.02.2008, 13:10
Hallo Ares,

ich habe dir mal was gebastelt.

Hoffentlich entspricht dies deinen Erwartungen.


Berti

Ares_1987
28.02.2008, 14:34
hey,

danke für die Antwort! war grad unterwegs!
ich schaus mir gleich mal an und meld mich dann wieder

Gruß
Ares

Ares_1987
28.02.2008, 14:56
ja, das funktioniert wunderbar :-) vielen vielen dank =)

Jetzt hab ich aber schon wieder eine kleine Frage.
Hat man irgendwie die Möglichkeit bei denjenigen Datensätzen wo ein "F" steht neben dran eine weitere Spalte (zB Details) einzufügen in der gekennzeichnet wird in welche Spalte der Fehler vorliegt?
Beispiele:
- Fehler in Name --> FN
- Fehler in Ort --> FO
- Fehler in PLZ --> FP
- Fehler in Strasse --> FS

Das zum Beispiel bei einem datensatz bei dem die Spalten Name und Strasse nicht übereinstimmen in der neuen Spalte Details "FN, FS" steht.

Grund dafür ist, dass somit die Fehlersuche erleichtert wird!

Ist das im Rahmen des Möglichen sowas zu erreichen?

Gruß
Ares

Berti_S
28.02.2008, 15:11
Na klar doch -siehe Anhang !

Berti

Ares_1987
28.02.2008, 15:30
jipii, das läuft wirklich einwandfrei :-) vielen dank an dieser stelle :)

aber ich hätte noch eine letzte kleine Frage...
da die meisten Fehler in meiner Datei bei dem Namen auftreten, hätte ich gerne die Namen-Spalte der Sub-Tab neben der Namen-Spalte in meiner Main-Tab. Damit man recht schnell vergleichen kann wo der Fehler liegt.
Ist das möglich?

Gruß
Ares

Berti_S
28.02.2008, 15:50
Immer oder nur im Fehlerfall ?

Ich würde Fall 2 bevorzugen und selbst da das Sub-Feld nicht unmittelbar daneben stellen, weil es die ganze Struktur kaputt macht.
Am einfachsten wäre es doch, wenn im Fehlerfall alle Nichtübereinstimmungen rechts neben das Flag geschrieben würden - oder ?

Berti

Ares_1987
28.02.2008, 16:00
hm, ja stimmt.

Wenn ein Fehler auftaucht sollte besser überall rechts daneben diese Unstimmigkeit aufgezeigt werden. dann wirds zwar alles etwas voller, aber es schon sinnvoll!

Gruß
Ares

Berti_S
28.02.2008, 16:14
Und bitte schön...


Berti

Ares_1987
28.02.2008, 17:16
Hallo Berti_S,

es funktioniert einwandfrei!!

Vielen vielen Dank!!!! Du hast mir wirklich sehr geholfen!!! Und danke nochmals für deine Geduld :-)

Grüße
Ares