Porovnajte 2 stĺpce prostredníctvom jazyka VBA v programe Microsoft Excel

Anonim

V prípade, že vás zaujíma, ako porovnať 2 stĺpce údajov s miliónmi riadkov a extrahovať jedinečné hodnoty z oboch stĺpcov, mali by ste si prečítať tento článok. Na porovnanie dvoch stĺpcov údajov použijeme kód VBA a v nasledujúcich dvoch stĺpcoch ukážeme rozdiel.

Otázka: V stĺpcoch A a B. existuje niekoľko hodnôt. Chcem, aby makro skontrolovalo viac ako 40 000 riadkov údajov v oboch stĺpcoch a potom extrahovalo zoznam jedinečných záznamov z každého stĺpca do ďalšieho stĺpca, tj stĺpcov C & D v uvedenom poradí. V tomto prípade používam iba 40 riadkov vzorových údajov.

Pôvodnú otázku nájdete tu
Nasleduje prehľad údajov:

Ak chcete porovnať zoznam dvoch stĺpcov, na spustenie editora VB musíme vykonať nasledujúce kroky:

  • Kliknite na kartu Vývojár
  • Zo skupiny kódov vyberte Visual Basic

  • Skopírujte nižšie uvedený kód do štandardného modulu
 Sub PullUniques () Dim rngCell ako rozsah pre každý rngCell v rozsahu ("A2: A40") If WorksheetFunction.CountIf (Range ("B2: B40"), rngCell) = 0 Then Range ("C" & Rows.Count). End (xlUp). Offset (1) = rngCell End If Next pre každý rngCell v rozsahu ("B2: B40") If WorksheetFunction.CountIf (Range ("A2: A40"), rngCell) = 0 Then Range ("D" & Rows.Count). Koniec (xlUp). Offset (1) = rngCell End If Next End Sub 

  • Vyššie uvedené makro je nastavené na spustenie; buď môžeme stlačiť kláves F5 -ak sa práve nachádzate na obrazovke editora jazyka Visual Basic -alebo môžeme použiť klávesové skratky „ALT + F8“, vyberte makro a kliknite na tlačidlo Spustiť

  • Jedinečný zoznam zo stĺpcov A a B sa automaticky vygeneruje v stĺpcoch C a D

Vysvetlenie kódu:

Vo vyššie uvedenom kóde použijeme na získanie výsledku funkciu IF spolu so slučkou For.

  • Deklarujeme Dim rngCell ako rozsah; účelom deklarovania rngCell ako rozsahu je, že chceme priradiť vzorový rozsah „A2: A40“ s konkrétnym názvom, tj „rngCell“ v našom prípade
  • Pre každý rngCell v rozsahu („A2: A40“); skontrolujeme každú bunku v „rngCell“ s podmienkou
  • Ak WorksheetFunction.CountIf (rozsah ("B2: B40"), rngCell) = 0 Potom; tento riadok kódu používa funkciu COUNTIF VBA na kontrolu rozsahu kritérií B2: B40 s kritériami rngCell sa rovná nule, potom v stĺpci C sa uloží hodnota uložená v rngCell
  • Podobne spustíme pre každú slučku pre stĺpec B a extrahujeme jedinečné hodnoty v stĺpci D

Záver: Z každého stĺpca môžeme získať jedinečný zoznam textu alebo hodnôt; názov hlavičky stĺpca C (Výsledky - existuje v zozname 1, ale nie v zozname 2) & stĺpci D (Výsledky - existuje v zozname 2, ale nie v zozname 1). V prípade, že máme podobnú požiadavku, ale počet stĺpcov je viac ako dva, musíme kód vyladiť, aby sme získali výsledok.

Ak sa vám páčili naše blogy, zdieľajte ich so svojimi priateľmi na Facebooku. A tiež nás môžete sledovať na Twitteri a Facebooku.
Radi by sme vás počuli, dajte nám vedieť, ako môžeme zlepšiť, doplniť alebo inovovať našu prácu a zlepšiť ju pre vás. Napíšte nám na e -mailová stránka