Vergleichen 2 Spalten Durch VBA in Microsoft Excel
Wenn Sie sich fragen, wie Sie 2 Datenspalten mit Zeilen in Millionen vergleichen und die eindeutigen Werte aus beiden Spalten extrahieren können, sollten Sie diesen Artikel lesen. Wir werden VBA-Code verwenden, um zwei Datenspalten zu vergleichen und den Unterschied in den nächsten beiden Spalten anzuzeigen.
Frage: In den Spalten A und B sind mehrere Werte vorhanden. Ich möchte, dass ein Makro mehr als 40.000 Datenzeilen in beiden Spalten überprüft und dann die Liste der eindeutigen Einträge aus jeder Spalte in die nächste Spalte extrahiert, d. H. Spalten C & D. In diesem Beispiel nehme ich nur 40 Zeilen mit Beispieldaten.
Sie finden die Originalfrage http://www.excelforum.com/excel-programming-vba-macros/1094194-compare-data-in-columns-a-and-b-show-differences-in-columns-c-and -d.html [hier]
Es folgt die Momentaufnahme der Daten:
===
Um die Liste der beiden Spalten zu vergleichen, müssen Sie die folgenden Schritte ausführen, um den VB-Editor zu starten:
Klicken Sie auf die Registerkarte Entwickler. Wählen Sie in der Gruppe Code die Option Visual Basic
aus * Kopieren Sie den folgenden Code in das Standardmodul
Sub PullUniques() Dim rngCell As Range For Each rngCell In Range("A2:A40") If WorksheetFunction.CountIf(Range("B2:B40"), rngCell) = 0 Then Range("C" & Rows.Count).End(xlUp).Offset(1) = rngCell End If Next For Each rngCell In Range("B2:B40") If WorksheetFunction.CountIf(Range("A2:A40"), rngCell) = 0 Then Range("D" & Rows.Count).End(xlUp).Offset(1) = rngCell End If Next End Sub
-
Das obige Makro ist vollständig ausgeführt. Entweder können wir die Taste F5 drücken – wenn Sie sich gerade im Bildschirm des Visual Basic-Editors befinden – oder wir können die Tastenkombinationen „ALT + F8“ verwenden, Ihr Makro auswählen und auf die Schaltfläche Ausführen
klicken * Die eindeutige Liste aus den Spalten A und B wird automatisch in den Spalten C und D
generiert
Code Erläuterung:
Im obigen Code verwenden wir die IF-Funktion zusammen mit der For-Schleife, um das Ergebnis zu erhalten.
Wir deklarieren Dim rngCell As Range; Der Zweck der Deklaration von rngCell als Bereich besteht darin, dass wir dem Stichprobenbereich „A2: A40“ einen bestimmten Namen zuweisen möchten, d. h. „rngCell“ in unserem Beispiel für jede rngCell im Bereich („A2: A40“). Wir werden für jede Zelle in „rngCell“ nach einer Bedingung suchen. If WorksheetFunction.CountIf (Range („B2: B40“), rngCell) = 0 Then; Diese Codezeile verwendet die COUNTIF VBA-Funktion, um den Kriterienbereich B2: B40 mit den Kriterien zu überprüfen. rngCell ist gleich Null. In Spalte C wird der in rngCell gespeicherte Wert gespeichert. In ähnlicher Weise führen wir For Each Loop für Spalte B & Extract aus die eindeutigen Werte in Spalte D Schlussfolgerung: Wir können die eindeutige Liste von Text oder Werten aus jeder Spalte abrufen. Der Kopfzeilenname der Spalte C (Ergebnisse – vorhanden in Liste 1, jedoch nicht in Liste 2) und Spalte D (Ergebnisse – vorhanden in Liste 2, jedoch nicht in Liste 1). Wenn wir ähnliche Anforderungen haben, die Anzahl der Spalten jedoch mehr als zwei beträgt, müssen wir den Code anpassen, um das Ergebnis zu erhalten.
Wenn Ihnen unsere Blogs gefallen haben, teilen Sie sie Ihren Freunden auf Facebook mit. Und Sie können uns auch auf Twitter und Facebook folgen.
Wir würden gerne von Ihnen hören, uns mitteilen, wie wir unsere Arbeit verbessern, ergänzen oder innovieren und für Sie verbessern können. Schreiben Sie uns an [email protected]