Excel - Сравнете две колони и изтрийте дубликати

Математически или логически операции не могат да се извършват ръчно в работни листове на Excel, които съдържат големи количества данни, тъй като това би отнело твърде дълго време. Но Excel е ефективна офис софтуерна програма, която позволява на данните да се манипулират автоматично, чрез макро или VBA програмен код. За да сравните две колони и да изтриете дубликати в Excel, макрос може да бъде написан, за да направите логическо или математическо сравнение на колоните. и премахване на редовете, съдържащи дублирани данни. Добре написаният макрос на Excel може да изпълни задачата бързо и точно. Лесно е да се сравнят две колони и да се изтрият дубликати в Excel.

  • Проблем
  • Решение
  • Забележка

Проблем

Имам нужда от макрос за електронна таблица на Excel, която ще сравнява линии, базирани на две клетки, и ще открие дубликати.

В този пример първите две колони - А и В - са тези, които трябва да бъдат уникални. Макросът трябва само да маркира редове, които са перфектно съвпадащи в двете колони. Така в този пример трябва да се маркира само петият ред, тъй като той е точно съвпадение за горния.

Пример:

 Col A Col B Col C Col 00001 AAAA1 xxxx yyyy 00001 BBBB1 xxxx xxxx 00001 BBBB2 yyyy yyyy 00002 AAAA1 yyyy xxxx 00002 AAAA1 xxxx yyyy 

Решение

Това решение ще промени данните в електронната ви таблица, затова се уверете, че сте запазили резервно копие.

Първо, трябва да комбинирате данните в колони А и В, така че те да могат да бъдат сравнени като цяло. За да направите това, въведете празна клетка в края на първия ред от данни (в този пример използваме ред 2 - променете, ако е необходимо):

 = А2 и В2 

Копирайте тази формула надолу за цялата електронна таблица.

Сега изпълнете макроса по-долу. В този примерен код се предполага, че сте написали горната формула в колона E. Променете кода, ако е необходимо.

Предупреждение: Този макрос ще изтрие редове, така че е важно да се уверите, че сте направили копието на резервното копие, преди да го тествате.

 Подтекст () Dim j Като Integer, k As Integer, r As Range j = Обхват ("E2"). End (xlDown) .Row За k = j До 2 Стъпка -1 MsgBox k Задаване r = Обхват (клетки (k), "E"), Клетки (k, "E"). Край (xlUp)) Ако WorksheetFunction.CountIf (r, клетки (k, "E"))> 1 Тогава клетки (k, "E"). Изтриване на End Ако Следващ k Край Sub 

Забележка

Благодарение на venkat1926 за този съвет на форума.

Предишна Статия Следваща Статия

Топ Съвети