Selektywnie znajdź duplikaty w kolumnach


0

Kolumna A ma identyfikator produktu. Istnieją 102 inne kolumny z innymi danymi. Kolumna A będzie unikalna, chyba że niektóre dane zostały zmienione. W takim przypadku będą 2 wiersze z 99% kolumn identycznych, z wyjątkiem zmiany.

Czy można wskazać, które kolumny są różne w ramach tego samego identyfikatora produktu?

W poniższym przykładzie dla ID: 2 kolumna C jest różnicowaniem. Dla ID: 5 kolumna E to.

spreadsheet screenshot


Czy masz na myśli sposób, w jaki ROWS jest inny? Pytanie nie jest strasznie sformułowane, ale trudno zrozumieć sens twojej sytuacji.
Wutnaut

Wiem, które wiersze są duplikatami, ponieważ identyfikator jest taki sam. Potrzebujemy, które COLUMNS są różne. Doda obraz powyżej, aby wyjaśnić.
Joe Z

Wiem, jak to zrobić dla 2 kolumn, nie wiem, jak to zrobić, aby 102 kolumny ... W każdym razie robię to, podświetlając 2 kolumny, a następnie na górnej wstążce wybierz Formatowanie warunkowe - & gt; Podświetl reguły komórki - & gt; Więcej reguł ... - & gt; Sformatuj tylko unikalne lub zduplikowane wartości (wybierz unikalne z listy rozwijanej). Mam nadzieję, że ta informacja wystarczy, aby znaleźć się na właściwej ścieżce, ponieważ szybko osiągam swoją głębokość.
Wutnaut

@Wutnaut, wydaje się, że nie mieści się w zakresie ID. Ponadto istnieje 13171 wierszy.
Joe Z

Cóż, jeśli to możliwe, to poprzez formatowanie warunkowe. 102 kolumny z 13k rzędami i chcesz pokazać, które są wyjątkowe ... powodzenia.
Wutnaut

Odpowiedzi:


0

To zależy od tego, jak chcesz uzyskać dane wyjściowe, ale to, co bym zrobił w twojej sytuacji, jeśli nie ma powodu, dla którego nie możesz, to napisanie prostego makra w VBA, które skanuje wszystkie kolumny i albo zwraca położenie innej kolumny, tworzy łącze do tej komórki lub podświetla różne wartości.

Makro może przepływać w ten sposób:

  1. Uzyskaj wartość w bieżącej komórce
  2. Sprawdź komórki powyżej i poniżej, aż pojawi się inna wartość. Daje ci to szereg wierszy
  3. Dla każdej kolumny po pierwszej porównaj te wiersze
  4. Jeśli jest jakaś różnica, zaznacz te komórki (na przykład możesz również zwrócić literę lub liczbę kolumn, np. D = 4)

W idealnej sytuacji otrzymam wynik jako inną kolumnę (103.), która wyświetli nagłówki kolumn zawierające różnice. Tak więc kolumna F wylistuje [null, C, C, null, null, E, E]
Joe Z

W porządku. Tak więc byłoby rozsądnie napisać makro. Dam ci to jako pokarm do myślenia, ale jeśli zdecydujesz się na tę trasę i będziesz miał pytania, daj mi znać.
Aliden

To, co zrobiliśmy, to zaimportowanie tego do SQL i uruchomienie GROUP BY na ID, a następnie CONCAT unikatowe wartości w każdej grupie, przy użyciu określonego znaku. Każde miejsce, które ma ten znak, oznacza połączenie różnych danych. Zdecydowanie nie sposób Exel, ale dla mnie najszybsza droga do rozwiązania. Byłoby jednak interesujące zobaczyć to w VBA.
Joe Z

0

Kliknij w komórce B2. Utwórz format warunkowy za pomocą formuły

=OR(AND($A1=$A2,B1<>B2), AND($A2=$A3,B2<>B3))

lubię to:

formatting rule

i zastosuj go do całego obszaru danych:

Rules Manager (shows “Applies To”)

Oto wynik:

the worksheet


Czy jest to praktyczne dla rozmiaru arkusza kalkulacyjnego (102 kolie, 13k wierszy)?
Joe Z

Myślę, że tak będzie. Byłbym zszokowany, gdyby 102 kolumny były problemem; tysiące rzędów - może. Ale spójrz na to, co robi formuła - patrzy tylko na komórkę powyżej bieżącej komórki, komórkę poniżej i odpowiadające jej trzy komórki (ten sam wiersz ± 1) w kolumnie A. Sześć komórek, cztery porównania i trzy logiczne (logiczne ) operacje - nie ma powodu, żeby się dławił.
Scott

w jednym przypadku (konkretnym identyfikatorze) istnieje 175 zduplikowanych wierszy, więc każde sprawdzenie musiałoby sprawdzić wszystkie pozostałe 174 wiersze
Joe Z

Nadal nie widzę problemu. W każdej komórce znajduje się sześć komórek, cztery porównania i trzy operacje logiczne.
Scott

1
Spróbuj już ... sheesh ...
Mike Honey
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.