В случай, че се чудите как да сравните 2 колони с данни с редове в милиони и да извлечете уникалните стойности между двете колони, тогава трябва да прочетете тази статия. Ще използваме VBA код, за да сравним две колони с данни и да покажем разликата в следващите две колони.
Въпрос: Има няколко стойности, които съществуват в колони A и B. Искам макрос да провери повече от 40 k реда данни в двете колони и след това да извлече списъка с уникални записи от всяка колона в следващата колона, т.е. колони C & D съответно. В този пример вземам само 40 реда примерни данни.
Можете да намерите оригинален въпрос тук
Следва моментна снимка на данните:
За да сравним списъка с две колони, трябва да следваме стъпките по -долу, за да стартираме VB редактор:
- Кликнете върху раздела Разработчик
- От групата кодове изберете Visual Basic
- Копирайте кода по -долу в стандартния модул
Sub PullUniques () Dim rngCell As Range За всяка rngCell в диапазона ("A2: A40") Ако WorksheetFunction.CountIf (Range ("B2: B40"), rngCell) = 0 Тогава Range ("C" & Rows.Count). End (xlUp) .Offset (1) = rngCell End If If Next за всяка rngCell в обхвата ("B2: B40") If WorksheetFunction.CountIf (Range ("A2: A40"), rngCell) = 0 Тогава Range ("D" & Rows.Count) .End (xlUp) .Offset (1) = rngCell End If Next End Sub
- Горният макрос е настроен да работи; или можем да натиснем клавиша F5 -ако в момента сте на екрана с редактор на Visual Basic -или можем да използваме клавишни комбинации „ALT + F8“, изберете вашия макрос и кликнете върху бутона за изпълнение
- Уникалният списък от колони A & B ще бъде генериран автоматично в колони C & D
Код Обяснение:
В горния код ще използваме функцията IF заедно с цикъла For, за да получим резултата.
- Обявяваме Dim rngCell като диапазон; целта на обявяването на rngCell като диапазон е, че искаме да присвоим примерния диапазон „A2: A40“ със специфично име, т.е. „rngCell“ в нашия пример
- За всяка rngCell в обхват ("A2: A40"); ще проверим за всяка клетка в “rngCell” с условие
- Ако WorksheetFunction.CountIf (Range ("B2: B40"), rngCell) = 0 Тогава; този ред код използва функцията COUNTIF VBA за проверка на обхвата на критериите B2: B40 с критерии rngCell е равен на нула, след което в колона C стойността, съхранена в rngCell, ще бъде запазена
- По подобен начин ще стартираме за всеки цикъл за колона B и ще извлечем уникалните стойности в колона D
Заключение: Можем да получим уникалния списък с текст или стойности от всяка колона; името на заглавката на колоната C (Резултати - Съществува в Списък 1, но не и в Списък 2) & колона D (Резултати - Съществува в Списък 2, но не и в Списък 1). В случай, че имаме подобно изискване, но броят на колоните е повече от две, тогава трябва да променим кода, за да получим резултата.
Ако ви харесаха нашите блогове, споделете го с приятелите си във Facebook. Можете също така да ни следвате в Twitter и Facebook.
Ще се радваме да чуем от вас, уведомете ни как можем да подобрим, допълним или обновим работата си и да я подобрим. Пишете ни на имейл сайт