Excel - сравнить два столбца и удалить дубликаты

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

  • вопрос
  • Решение
  • Заметка

вопрос

Мне нужен макрос для электронной таблицы Excel, который будет сравнивать строки на основе двух ячеек и находить дубликаты.

В этом примере первые два столбца - A и B - должны быть уникальными. Макрос должен отмечать только те строки, которые идеально совпадают в обоих столбцах. Таким образом, в этом примере должна быть помечена только пятая строка, так как она точно соответствует приведенной выше.

Пример:

 Col A Col B Col C Col D 00001 AAAA1 xxxx гггг 00001 BBBB1 xxxx xxxx 00001 BBBB2 гггг гггг 00002 AAAA1 гггг xxxx 00002 AAAA1 гггг xxxx 00003 AAAA1 хххх гггг 

Решение

Это решение изменит данные в вашей электронной таблице, поэтому обязательно сохраните резервную копию.

Во-первых, вам нужно объединить данные в столбцах A и B, чтобы их можно было сравнить в целом. Для этого введите пустую ячейку в конце первой строки данных (в этом примере мы используем строку 2 - при необходимости измените):

 = А2 & В2 

Скопируйте эту формулу для всей таблицы.

Теперь запустите макрос ниже. В этом примере кода предполагается, что вы написали приведенную выше формулу в столбце E. При необходимости измените код.

Предупреждение: этот макрос удаляет строки, поэтому важно убедиться, что вы сделали резервную копию перед тестированием.

 Подтекст () Dim j As Integer, k As Integer, r As Range j = Range ("E2"). End (xlDown) .Row Для k = j To 2 Шаг -1 MsgBox k Set r = Range (Cells (k), "E"), Ячейки (k, "E"). End (xlUp)) Если WorksheetFunction.CountIf (r, Ячейки (k, "E"))> 1, то Ячейки (k, "E"). Удалить конец, если следующий k End Sub 

Заметка

Спасибо venkat1926 за этот совет на форуме.

Предыдущая статья Следующая статья

Лучшие советы