kerpal Opublikowano 25 Lutego 2012 Zgłoś Udostępnij Opublikowano 25 Lutego 2012 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
DawidS28 Opublikowano 25 Lutego 2012 Zgłoś Udostępnij Opublikowano 25 Lutego 2012 Witam, panowie (...) Na wstępie chciałem zauważyć, że Szefowa jest kobietą. 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. 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. 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. 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). 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
kerpal Opublikowano 25 Lutego 2012 Autor Zgłoś Udostępnij Opublikowano 25 Lutego 2012 Tylko tych nawziwsk jest koło 200, i co, mam każde nazwisko wklejać do osobnej komórki ?? Odnośnik do komentarza
DawidS28 Opublikowano 25 Lutego 2012 Zgłoś Udostępnij Opublikowano 25 Lutego 2012 Przecież zwykłe przerzucenie stosu nazwisk do Excela, jeśli masz je w Wordzie w osobnych liniach, to nie ma żadnego problemu. Będą w osobnych komórkach po skopiowaniu. Odnośnik do komentarza
kerpal Opublikowano 25 Lutego 2012 Autor Zgłoś Udostępnij Opublikowano 25 Lutego 2012 A że tak spytam, Open Office może być ? ;] i tam jego wewnętrzny program podobny do excela... Odnośnik do komentarza
DawidS28 Opublikowano 25 Lutego 2012 Zgłoś Udostępnij Opublikowano 25 Lutego 2012 OpenOffice jest nierozwijany od dłuższego czasu. Kod źródłowy OO i ekosystem użytkowników skupił się teraz wokół LibreOffice. Natomiast z tym Ci nie pomogę, nie korzystam praktycznie wcale z tego pakietu. Odnośnik do komentarza
kerpal Opublikowano 25 Lutego 2012 Autor Zgłoś Udostępnij Opublikowano 25 Lutego 2012 ehh, nie mam excela żadnego, kupowac specjalnie nie będę, więc chyba dam sobie spokój... Odnośnik do komentarza
DawidS28 Opublikowano 26 Lutego 2012 Zgłoś Udostępnij Opublikowano 26 Lutego 2012 Libre Office jest darmowy i dosyć zbliżony do OO. Odnośnik do komentarza
marcinkowski Opublikowano 26 Lutego 2012 Zgłoś Udostępnij Opublikowano 26 Lutego 2012 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
Rekomendowane odpowiedzi
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ę