Excel - Porównaj dwie kolumny i usuń duplikaty
![](http://img.brin-designs.com/img/games/645/excel-compare-two-columns.png)
- 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.