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