/ / W programie Excel usuń duplikaty z jednej kolumny na podstawie wartości w innej kolumnie, albo za pomocą języka VBA, albo kombinacji formuł / funkcji - excel, excel-vba, excel-formuła, excel-2010, vba

W programie Excel usuń duplikaty z jednej kolumny na podstawie wartości z innej kolumny, albo za pomocą języka VBA, albo kombinacji formuł / funkcji - excel, excel-vba, excel-formuła, excel-2010, vba

Mam problem z próbą osiągnięcia tego w sposób dokładny i automatyczny. Próbowałem już omawianych podejść tutaj, tutaj i tutaj, ale żaden nie działa w moim scenariuszu.

Mam arkusz kalkulacyjny z tysiącami rzędów danych. Dane są zorganizowane w następujący sposób:

  • Kolumna A zawiera adresy IP w Ogólny format
  • Kolumna B zawiera datę / godzinę w następującym formacie niestandardowym (d / mm / rrrrh: mm)
  • Kolumna C zawiera czas trwania w następującym formacie niestandardowym (h: mm: ss)

Te dane zawierają pewną liczbę duplikatów, które muszę usunąć, w oparciu o adres IP w kolumnie A. Jednak kryteria, których potrzebuję, to usunięcie dowolnych duplikatów nie najdłuższy czas trwania. Aby lepiej wyjaśnić mój scenariusz, zobacz przykładowy obraz poniżej:

wprowadź opis obrazu tutaj

Potrzebuję sposobu na usunięcie wszystkich duplikatów plikuokreślony adres IP, który nie zawiera najdłuższego czasu trwania dla tego adresu IP. Używając powyższego przykładu, wiersz 3 zostałby usunięty, ponieważ czas trwania 1 minuty jest krótszy niż 36 minut w rzędzie 4, który zawiera ten sam adres IP.

Innym przykładem są wiersze 5, 6 i 7również zostaną usunięte, ponieważ wszystkie ich czasy trwania są krótsze niż w wierszu 8, który ma ten sam adres IP, ale dłuższy czas. Oczywiście wszystkie wiersze zawierające już unikalne adresy IP będą pozostawione same sobie. Końcowy wynik przy użyciu powyższej próbki będzie następujący:

wprowadź opis obrazu tutaj

Oczywiście w mojej próbce przede wszystkim były daneładnie posortowane według adresu IP i czasu trwania drugiego. W prawdziwym życiu tak nie jest, ale to jest coś łatwego do wykonania przed jakimkolwiek rozwiązaniem, jeśli to konieczne.

Kluczową sprawą jest to, że w niektórych przypadkach adres IPmoże zostać powielony jeden raz, w innych może zostać powielony wiele razy. Po prostu muszę się upewnić, że pozostaje tylko ten o najdłuższym czasie trwania. W przypadku, gdy wiele wystąpień adresu IP ma ten sam najdłuższy czas trwania, chcę je wszystkie zachować. Oznacza to, że jeśli adres IP powtarza się dziesięć razy, a jego najdłuższy czas wynosi dwie godziny, to obydwie muszą pozostać.

Cieszę się z jakiegokolwiek rozwiązania tego, czy to za pomocą formuł, funkcji czy makr.

Odpowiedzi:

1 dla odpowiedzi № 1

Możesz rozwiązać swoje zadanie za pomocą kolumny pomocnika (kolumna D).

  1. Wstaw poniższą tablicę do komórki D2:

    =IF($C2=MAX(IF($A2=$A$2:$A$50,$C$2:$C$50,-1)),"Remain","Remove")

    gdzie 50 - ostatni rząd twojego stołu

    Pamiętaj, aby nacisnąć Ctrl+Shift+Enter aby poprawnie uzupełnić formułę tablicową.

  2. Skopiuj / wklej formułę do innych komórek.

  3. Przeprowadź filtr do kolumny D przez wartość "usuń"

  4. Usuń przefiltrowane wiersze.