Porovnejte 2 sloupce prostřednictvím jazyka VBA v aplikaci Microsoft Excel

Anonim

Pokud vás zajímá, jak porovnat 2 sloupce dat s řádky v milionech a extrahovat jedinečné hodnoty z obou sloupců, měli byste si přečíst tento článek. Pomocí kódu VBA porovnáme dva sloupce dat a ukážeme rozdíl v následujících dvou sloupcích.

Otázka: Ve sloupcích A a B existuje více hodnot. Chci, aby makro zkontrolovalo více než 40 k řádků dat v obou sloupcích a poté extrahovalo seznam jedinečných položek z každého sloupce do dalšího sloupce, tj. Sloupců C Respektive D. V tomto příkladu beru pouze 40 řádků ukázkových dat.

Původní otázku najdete zde
Následuje snímek dat:

Chcete -li porovnat seznam dvou sloupců, musíme ke spuštění editoru VB provést následující kroky:

  • Klikněte na kartu Vývojář
  • Ze skupiny kódů vyberte Visual Basic

  • Zkopírujte níže uvedený kód do standardního modulu
 Sub PullUniques () Dim rngCell jako rozsah pro 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 Pro každý rngCell v rozsahu ("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 

  • Výše uvedené makro je nastaveno ke spuštění; buď můžeme stisknout klávesu F5 -pokud se právě nacházíte na obrazovce editoru jazyka Visual Basic -nebo můžeme použít klávesové zkratky „ALT + F8“, vyberte makro a klikněte na tlačítko Spustit

  • Unikátní seznam ze sloupců A a B bude automaticky generován ve sloupcích C a D

Vysvětlení kódu:

Ve výše uvedeném kódu použijeme funkci IF společně se smyčkou For, abychom získali výsledek.

  • Deklarujeme Dim rngCell jako rozsah; účelem deklarace rngCell As Range je, že chceme přiřadit ukázkový rozsah „A2: A40“ s konkrétním názvem, tj. „rngCell“ v našem příkladu
  • Pro každý rngCell v dosahu ("A2: A40"); zkontrolujeme každou buňku v „rngCell“ s podmínkou
  • If WorksheetFunction.CountIf (Range ("B2: B40"), rngCell) = 0 Then; tento řádek kódu používá funkci COUNTIF VBA ke kontrole rozsahu kritérií B2: B40 s kritérii rngCell se rovná nule, pak ve sloupci C bude uložena hodnota uložená v rngCell
  • Podobně spustíme pro každou smyčku pro sloupec B a extrahujeme jedinečné hodnoty ve sloupci D.

Závěr: Z každého sloupce můžeme získat jedinečný seznam textu nebo hodnot; název záhlaví sloupce C (výsledky - existuje v seznamu 1, ale ne v seznamu 2) & sloupci D (výsledky - existuje v seznamu 2, ale ne v seznamu 1). V případě, že máme podobný požadavek, ale počet sloupců je více než dva, musíme kód vyladit, abychom získali výsledek.

Pokud se vám naše blogy líbily, sdílejte je se svými přáteli na Facebooku. A také nás můžete sledovat na Twitteru a Facebooku.
Rádi bychom od vás slyšeli, dejte nám vědět, jak můžeme zlepšit, doplnit nebo inovovat naši práci a zlepšit ji pro vás. Napište nám na e -mailový web