У случају да се питате како да упоредите 2 колоне података са милионским редовима и издвојите јединствене вредности између обе колоне, прочитајте овај чланак. Користићемо ВБА код да упоредимо две колоне података и покажемо разлику у следеће две колоне.
Питање: У колонама А и Б. постоји више вредности. Желим да макро провери више од 40 к редова података у обе колоне, а затим извуче листу јединствених уноса из сваке колоне у следећу колону, тј. Колоне Ц & Д респективно. У овом примеру узимам само 40 редова узорака података.
Оригинално питање можете пронаћи овде
Следи снимак података:
Да бисмо упоредили листу две колоне, морамо да следимо доње кораке за покретање ВБ уређивача:
- Кликните на картицу Девелопер
- Из групе кодова изаберите Висуал Басиц
- Копирајте доњи код у стандардни модул
Суб ПуллУникуес () Дим рнгЦелл Ас Ранге За сваку рнгЦелл у опсегу ("А2: А40") Иф ВорксхеетФунцтион.ЦоунтИф (Ранге ("Б2: Б40"), рнгЦелл) = 0 Затим Ранге ("Ц" & Ровс.Цоунт). Крај (клУп) .Оффсет (1) = рнгЦелл Крај ако је следеће За сваку рнгЦелл у опсегу ("Б2: Б40") Ако ВорксхеетФунцтион.ЦоунтИф (Опсег ("А2: А40"), рнгЦелл) = 0 Затим Ранге ("Д" & Ровс.Цоунт) .Енд (клУп) .Оффсет (1) = рнгЦелл Енд Иф Нект Енд Суб
- Горе наведени макро је подешен за покретање; или можемо притиснути тастер Ф5 -ако се тренутно налазите на екрану уређивача Висуал Басиц -или можемо користити пречице „АЛТ + Ф8“, изаберите макро и кликните на дугме за покретање
- Јединствена листа из колона А & Б биће аутоматски генерисана у колонама Ц & Д
Објашњење кода:
У горњем коду користићемо ИФ функцију заједно са Фор петљом да бисмо добили резултат.
- Проглашавамо Дим рнгЦелл Ас Ранге; сврха декларисања рнгЦелл -а као опсега је што желимо да доделимо опсег узорка „А2: А40“ са одређеним именом, тј. „рнгЦелл“ у нашем примеру
- За сваку рнг -ћелију у домету ("А2: А40"); проверићемо сваку ћелију у „рнгЦелл“ са условом
- Ако је ВорксхеетФунцтион.ЦоунтИф (Ранге ("Б2: Б40"), рнгЦелл) = 0 Затим; овај ред кода користи функцију ЦОУНТИФ ВБА за проверу опсега критеријума Б2: Б40 са критеријумом рнгЦелл једнак нули, тада ће се у колони Ц сачувати вредност ускладиштена у рнгЦелл
- Слично томе, за сваку петљу ћемо покренути колону Б и извући јединствене вредности у колону Д
Закључак: Из сваке колоне можемо добити јединствену листу текста или вредности; назив заглавља колоне Ц (Резултати - постоји на листи 1, али не и на листи 2) & колоне Д (резултати - постоји на листи 2, али не и на листи 1). У случају да имамо сличан захтев, али је број колона већи од два, потребно је да подесимо код да бисмо добили резултат.
Ако вам се допадају наши блогови, поделите их са пријатељима на Фацебооку. Такође нас можете пратити на Твиттер -у и Фацебоок -у.
Волели бисмо да чујемо од вас, реците нам како можемо побољшати, допунити или иновирати наш рад и учинити га бољим за вас. Пишите нам на сајт е -поште