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.

Es folgt die Momentaufnahme der Daten:

img1

===

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

img2

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

img3

  • 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

img4

klicken * Die eindeutige Liste aus den Spalten A und B wird automatisch in den Spalten C und D

img5

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.

image 29

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]