2017-10-31 2 views
0

Dieser ist ziemlich spezifisch, aber im Grunde habe ich zwei Datendumps (im .xls-Format) bekommen: einen aus einem alten System und einen aus dem neuen System. Es gibt viel mehr Zeilen im Dump des neuen Systems, aber ich möchte die Zeilen entfernen, die bereits im Dump des alten Systems gefunden wurden.Wie kann ich alle Instanzen auswählen, in denen die Werte der Spalten A und B in Blatt 1 exakt den Spalten A und B in Blatt 2 entsprechen?

Jedes Blatt enthält etwa 10 Spalten, aber nur zwei dieser Spalten haben tatsächlich potenziell übereinstimmende Werte.

So kann meine Frage wie folgt zusammengefasst werden: Wie kann ich die Instanzen alle auswählen, in dem die Werte der Spalten A & B in Blatt 1 (alte Dump) sind genau gleich Spalten A & B von Blatt 2 (neu Dump)

+0

Zeigen Sie uns Ihre VBA-Skript, so dass wir Sie in einer besseren Art und Weise helfen könnte. Persönlich werde ich die xls-Datei in csv konvertieren, mit Python oder Javascript analysieren und dann die Listenverstehenstechnik anwenden. Aber ich denke, das ist nicht das, was du willst. – goFrendiAsgard

+0

Das könnte was ich will. Ich bin sehr neu dabei und lerne, wie ich gehe. Ich habe noch kein VBA-Skript, ich frage mich nur, wie ich anfangen soll, dieses Problem anzugehen. –

+0

Sind beide in der gleichen Datei? – QHarr

Antwort

1

Sie könnten eine Hilfssäule in Blatt 1 und in Blatt 2 hinzufügen. Und fügen Sie eine Formel in diese konkatenate Spalte ein A & Spalte B z.

=A1&B1 

In den Bildern unter Spalte K hat die Formel in der Spalte A Spalte B & Werten kombiniert. Spalte L dient zur Veranschaulichung und zeigt Ihnen, was die in Spalte K enthaltene Formel ist.

Im alten Blatt:

Sheet1: Old data dump

In sheet2 Sie sowohl die Helfer Spalte K und eine zusätzliche Formel in Spalte L haben, wie unten in der Abbildung dargestellt. Spalte M in diesem Fall zeigt Ihnen die Formel in Spalte L:

Sheet2: New data dump

Spalte L in dieser hat die Formel:

=IF(ISNA(MATCH(K2,Old!K:K,0)),"Keep","Delete") 

Der innere Teil sieht, wenn Spalte K-Wert zu sehen, die neuer Datenabzug kann in der Spalte K des alten Datenabzugs gefunden werden, dh, es gibt eine Übereinstimmung für die Werte der Spalte A und B.

MATCH(K2,Old!K:K,0) 'This would be MATCH(K2,Sheet1!K:K,0) in your case 

Wenn keine Übereinstimmung gefunden wird, das heißt eine bestimmte Spalte A und B-Kombination in den neuen gefunden wird, aber nicht in den alten, die MATCH Formel #N/A zurück.

Der äußere Teil der Spalte L-Formel testet für diesen Fehler mit ISNA() , die für einen Fehler True und andernfalls False zurückgibt.

Setzen Sie dies innerhalb der IF() Anweisung in Spalte L (in der Tabelle2) haben Sie eine Formel, die besagt, wenn Übereinstimmung gefunden "Löschen", wenn nicht gefunden "Keep".

Sie können dann in der Spalte L nach Einträgen filtern, die "Löschen" anzeigen und dann löschen.

Ctrl & Shift & L to filter results on rows to delete

+0

Das ist fantastisch, vielen Dank. Obwohl aus irgendeinem Grund "Keep" & "Delete" nicht angezeigt wird, einfach TRUE oder FALSE. Das funktioniert trotzdem gut, danke. –

+0

Sie müssten sicherstellen, dass Sie die Formel = IF (ISNA (MATCH (K2, Alt K: K, 0)), "Keep", "Löschen") – QHarr

+0

Froh, dass es funktioniert, obwohl – QHarr

Verwandte Themen