Сравнете 2 колони чрез VBA в Microsoft Excel

Anonim

В случай, че се чудите как да сравните 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.
Ще се радваме да чуем от вас, уведомете ни как можем да подобрим, допълним или обновим работата си и да я подобрим. Пишете ни на имейл сайт