Skocz do zawartości

Program do segregowania nazwisk?


kerpal

Rekomendowane odpowiedzi

Witam, panowie szukam programu bądź jakiejś "formuły" do excela/worda, który posegreguje mi nazwiska, chodzi o to że mam wypisane w wordzie nazwiska i imiona w taki sposób :

 

 

Michał Adamski

Tomasz Tomczyk

Adam Kowalski

Michał Adamski

Adam Kowalski

 

chciałbym żeby usunęły się powtarzane inicjały i zostały tylko pojedyncze czyli ma wyglądać tak :

 

Michał Adamski

Tomasz Tomczyk

Adam Kowalski

Odnośnik do komentarza
Pomoc jest darmowa, ale proszę rozważ przekazanie dotacji na utrzymanie serwisu: klik.
Witam, panowie (...)

Na wstępie chciałem zauważyć, że Szefowa jest kobietą. :P

 

Ktoś mógłby napisać makro w VBA (Visual Basic for Applications), ja niestety nie umiem tego zrobić. Ile masz tych wpisów do przejrzenia? Najprostsza metoda to sprawdzać po kolei nazwisko i na bieżąco szukać i kasować duplikaty, ale to daje złożoność kwadratową, czyli na 1000 nazwisk w najgorszym razie przeprowadzisz milion operacji. Szybsze rozwiązanie to posortować nazwiska, czyli złożoność O(n log n), co przy 1000 nazwiskach daje trochę mniej niż 10 000 operacji do wykonania i sprawdzać w dół, czy nie ma duplikatów. Da nam to złożoność już liniową, czyli O(n), a cały program O(n log n + n), czyli dla naszych 1000 nazwisk jakieś 11 000 operacji.

 

Wybacz tę matematyczną gadkę, ale zastanawiam się, jak to można szybko zrobić. :)

 

EDIT

 

Jak zwykle kombinuję za daleko. Przy małych (tak do 10000 wpisów) arkuszach możesz spróbować korzystać z czegoś takiego: http://excel-calc-vba-basic.blogspot.com/2007/07/excel-usuwanie-duplikatow.html

 

Kilka tematów do porównania:

http://www.excelforum.pl/topics15/cennik-usuwanie-duplikatow-vt24014.htm

http://www.goldenline.pl/forum/733688/makra-i-visual-basic

 

Kiedyś subskrybowałem newsletter Excel w praktyce. Jego kawałek:

 

Makro przydatne nie tylko w księgowości

 

Kasowanie jeden po drugim wierszy z powtórzonymi wpisami to koszmar każdego użytkownika Excela. Idą święta więc, nie będziesz miał czasu na takie ręczne robótki. Czekają bilanse, zestawienia i raporty roczne. Pokażę Ci, jak nakłonić do tej pracy Excela.

 

Załóżmy, że od swojego współpracownika otrzymałeś listę z nazwami firm, które kupowały produkty Twojej firmy w minionym roku. Dane były uzupełniane przez kilku pracowników i niestety na liście znajdują się powtórzone nazwy. Ty potrzebujesz szybko je usunąć. Proponujemy zastosowania makra, dzięki któremu zrobisz to błyskawicznie.

 

Przykładową listę zawierającą powtórzone wartości przedstawia rysunek.

 

125_rys.1_reference.png

 

Aby szybko pozbyć się duplikatów, wykonaj następujące czynności:

1. Kliknij dowolną komórkę zawierającą nazwę firmy i wybierz na pasku narzędziowym ikonę polecenia Sortuj rosnąco (w Excelu 2007: znajdziesz ją na karcie Dane).

2. Wciśnij kombinację klawiszy lewy Alt + F11, aby otworzyć Edytor VBA.

3. W oknie Edytora wstaw nowy moduł, wybierając z menu Insert polecenie Module.

4. Do okna po prawej wpisz kod widoczny na kolejnym rysunku.

 

125_rys.2_shop_header_image.png

 

5. Zapisz i zamknij Edytor VBA.

6. Teraz zaznacz zakres komórek zawierający nazwy firm i wciśnij kombinację klawiszy lewy Alt + F8.

7. Zostanie wyświetlone okno dialogowe Makro, w którym kliknij nazwę makra OznaczDuplikaty i kliknij przycisk Uruchom.

 

Zamiast powtórzonych nazw firm w komórkach pojawiło się słowo Duplikat. A zatem wszystkie wiersze, w których się ono znajduje, powinny być usunięte.

 

Aby to szybko zrobić:

8. Zaznacz dowolną komórkę w pierwszym wierszu zestawienia i uruchom autofiltr.

9. Kliknij rozwijaną listę w komórce A1 i jako kryterium filtrowania wskaż Duplikat.

 

125_rys.3_reference.png

 

W efekcie widoczne będą tylko wiersze, w których znajduje się słowo Duplikat.

 

10. Zaznacz widoczne wiersze i usuń je.

11. Teraz rozwiń listę z komórki A1 i wybierz pozycję Wszystkie (w Excelu 2007: Zaznacz wszystko).

 

125_rys.4_reference.png

 

Przedstawione rozwiązanie okazuje się wyjątkowo przydatne, gdy potrzebujesz usunąć duplikaty z listy obejmującej wiele tysięcy wierszy. Musisz jednak zawsze pamiętać o tym, aby przed uruchomieniem makra posortować listę.

 

Serdecznie pozdrawiam

Piotr Gromulski

Redaktor poradnika

"Excel w praktyce"

Odnośnik do komentarza
Witam, panowie szukam programu bądź jakiejś "formuły" do excela/worda, który posegreguje mi nazwiska, chodzi o to że mam wypisane w wordzie nazwiska i imiona w taki sposób :
ehh, nie mam excela żadnego, kupowac specjalnie nie będę, więc chyba dam sobie spokój...

Excela może nie masz ale w czymś otwierasz tą listę, jeżeli masz Worda to bez problemu możesz to sortować, podobnie w innych aplikacjach. Tu masz napisane jak to się robi w word-zie.

http://office.microsoft.com/pl-pl/word-help/alfabetyczne-porzadkowanie-listy-HA010065212.aspx

Odnośnik do komentarza

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...