Excel - Porovnání dvou sloupců a odstranění duplikátů
![](http://img.brin-designs.com/img/games/645/excel-compare-two-columns.png)
- Problém
- Řešení
- Poznámka
Problém
Potřebuji makro pro tabulku aplikace Excel, která bude porovnávat řádky založené na dvou buňkách a najít všechny duplikáty.
V tomto příkladu jsou první dva sloupce - A a B - ty, které musí být jedinečné. Makro by mělo obsahovat pouze řádky, které jsou v obou sloupcích perfektní. Takže v tomto příkladu by měl být označen pouze pátý řádek, protože je to přesná shoda pro výše uvedený řádek.
Příklad:
Col A Col B Col C Col D 00001 AAAA1 xxxx rrrr 00001 BBBB1 xxxx xxxx 00001 BBBB2 rrrr rrrr 00002 AAAA1 rrrr xxxx 00002 AAAA1 rrrr xxxx 00003 AAAA1 xxxx rrrr
Řešení
Toto řešení změní data ve vaší tabulce, takže se ujistěte, že jste uložili záložní kopii.
Nejdříve je třeba data zkombinovat do sloupců A a B, aby se dala srovnávat jako celek. Chcete-li to provést, zadejte do prázdné buňky na konci prvního řádku dat (v tomto příkladu používáme řádek 2 - změňte podle potřeby):
= A2 a B2
Zkopírujte tento vzorec pro celou tabulku.
Nyní spusťte makro níže. V tomto ukázkovém kódu se předpokládá, že jste zapsali výše uvedený vzorec do sloupce E. Změňte kód podle potřeby.
Upozornění: Toto makro odstraní řádky, takže je důležité se ujistit, že jste před testováním vytvořili kopii záložní kopie.
Subtext () Dim j jako celé číslo, k jako celé číslo, r jako rozsah j = rozsah ("E2") Konec (xlDown) .Row Pro k = j 2 kroky -1 MsgBox k Nastavit r = rozsah (buňky (k, "E"), Buňky (k, "E"). Konec (xlUp)) Pokud WorksheetFunction.CountIf (r, Buňky (k, "E"))> 1 Pak Buňky (k, "E") EntireRow. Smazat Konec Pokud Další k Konec Sub
Poznámka
Díky venkat1926 za tento tip na fóru.