Hvis du undrer dig over, hvordan du sammenligner 2 kolonner med data, der har rækker i millioner og udtrækker de unikke værdier blandt begge kolonnerne, skal du læse denne artikel. Vi vil bruge VBA -kode til at sammenligne to kolonner med data og vise forskellen i de næste to kolonner.
Spørgsmål: Der er flere værdier, der findes i kolonner A & B. Jeg vil have en makro til at kontrollere mere end 40 k rækker af data i begge kolonner og derefter udtrække listen over unikke poster fra hver af kolonnen til den næste kolonne, dvs. kolonner C Henholdsvis & D. I dette eksempel tager jeg kun 40 rækker eksempeldata.
Du kan finde det originale spørgsmål her
Følgende er snapshot af data:
For at sammenligne listen over to kolonner skal vi følge nedenstående trin for at starte VB -editor:
- Klik på fanen Udvikler
- Vælg Visual Basic fra kodegruppen
- Kopier nedenstående kode i standardmodulet
Sub PullUniques () Dim rngCell som område for hver rngCell In Range ("A2: A40") If WorksheetFunction.CountIf (Range ("B2: B40"), rngCell) = 0 Herefter Range ("C" & Rows.Count). End (xlUp) .Offset (1) = rngCell End If Next for Every 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
- Ovenstående makro er klar til at køre; enten kan vi trykke på F5 -tasten -hvis du i øjeblikket er i Visual Basic Editor -skærmen -eller vi kan bruge genvejstaster "ALT + F8", vælg din makro og klik på knappen Kør
- Den unikke liste fra kolonner A & B genereres automatisk i kolonner C & D
Kode Forklaring:
I ovenstående kode vil vi bruge IF -funktion sammen med For loop for at få resultatet.
- Vi erklærer Dim rngCell som område; formålet med at erklære rngCell som område er, at vi vil tildele prøveområdet "A2: A40" med et specifikt navn, dvs. "rngCell" i vores eksempel
- For hver rngCell In Range ("A2: A40"); vi vil kontrollere for hver celle i "rngCell" med en betingelse
- Hvis WorksheetFunction.CountIf (Range ("B2: B40"), rngCell) = 0 Herefter; denne kodelinje bruger COUNTIF VBA -funktion til at kontrollere kriterieinterval B2: B40 med kriterier rngCell er lig med nul, derefter i kolonne C gemmes værdien, der er gemt i rngCell
- På samme måde vil vi køre For hver sløjfe for kolonne B & udtrække de unikke værdier i kolonne D
Konklusion: Vi kan få den unikke liste med tekst eller værdier fra hver af kolonnen; overskriftens navn på kolonnen C (Resultater - findes i liste 1, men ikke i liste 2) og kolonne D (resultater - findes i liste 2, men ikke i liste 1). Hvis vi har lignende krav, men antallet af kolonner er mere end to, skal vi justere koden for at få resultatet.
Hvis du kunne lide vores blogs, kan du dele den med dine venner på Facebook. Og også du kan følge os på Twitter og Facebook.
Vi vil meget gerne høre fra dig, lad os vide, hvordan vi kan forbedre, supplere eller innovere vores arbejde og gøre det bedre for dig. Skriv til os på e -mail -websted