Excel - Porównaj dwie kolumny i usuń duplikaty

Operacji matematycznych lub logicznych nie można wykonywać ręcznie w arkuszach programu Excel zawierających duże ilości danych, ponieważ zajęłoby to zbyt wiele czasu. Ale Excel to wydajny program biurowy, który umożliwia automatyczną manipulację danymi za pomocą kodu programu makro lub VBA. Aby porównać dwie kolumny i usunąć duplikaty w Excelu, można napisać makro, aby dokonać logicznego lub matematycznego porównania kolumn i usuń wiersze zawierające zduplikowane dane. Dobrze napisane makro programu Excel może wykonać zadanie szybko i dokładnie. Łatwo jest porównać dwie kolumny i usunąć duplikaty w programie Excel.

  • Kwestia
  • Rozwiązanie
  • Uwaga

Kwestia

Potrzebuję makra dla arkusza kalkulacyjnego Excel, który porówna linie oparte na dwóch komórkach i odnajdzie duplikaty.

W tym przykładzie pierwsze dwie kolumny - A i B - są jedynymi, które muszą być unikalne. Makro powinno oznaczać wiersze, które idealnie pasują do obu kolumn. W tym przykładzie tylko piąty wiersz powinien być oznaczony flagą, ponieważ jest to dokładne dopasowanie do powyższego.

Przykład:

 Col A Col B Col C Col D 00001 AAAA1 xxxx yyyy 00001 BBBB1 xxxx xxxx 00001 BBBB2 yyyy rrrr 00002 AAAA1 rrrr xxxx 00002 AAAA1 rrrr xxxx 00003 AAAA1 xxxx yyyy 

Rozwiązanie

To rozwiązanie zmieni dane w arkuszu kalkulacyjnym, więc pamiętaj, aby zapisać kopię zapasową.

Po pierwsze, musisz połączyć dane w kolumnach A i B, aby można je było porównać jako całość. Aby to zrobić, wpisz pustą komórkę na końcu pierwszego wiersza danych (w tym przykładzie używamy wiersza 2 - zmień w razie potrzeby):

 = A2 i B2 

Skopiuj tę formułę dla całego arkusza kalkulacyjnego.

Teraz uruchom makro poniżej. W tym przykładowym kodzie zakłada się, że napisałeś powyższą formułę w kolumnie E. Zmień kod, jeśli to konieczne.

Ostrzeżenie: to makro usunie wiersze, dlatego ważne jest, aby przed przetestowaniem wykonać kopię zapasową kopii.

 Tekst podrzędny () Dim j jako liczba całkowita, k jako liczba całkowita, r jako zakres j = zakres („E2”). Koniec (xlDown) .Row Dla k = j do 2 Krok -1 MsgBox k Zestaw r = zakres (komórki (k, „E”), Komórki (k, „E”). End (xlUp)) Jeśli WorksheetFunction.CountIf (r, Komórki (k, „E”))> 1 Następnie Komórki (k, „E”). EntireRow. Usuń koniec, jeśli następny k Koniec pod 

Uwaga

Podziękowania dla venkat1926 za tę poradę na forum.

Poprzedni Artykuł Następny Artykuł

Najważniejsze Wskazówki