Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Excel - filtry autofiltry i grupowanie

28 Mar 2009 19:35 16360 20
  • Poziom 9  
    Witam!
    Mam problem z tabelą,która jest dość rozbudowana i nie mogę poradzić sobie z autofiltrem (który nic mi nie daje,może trzeba użyć zaawansowanego,ale nie mam pojęcia jak) grupowanie też nic nie daje ponieważ strasznie długo się otwiera i bardzo wolno chodzi (pracowników będzie około 350 może w ilości jest problem dla grupowania).
    Chciałabym znaleźć Pana Nowaka czy Kowalskiego,ale nie tylko nazwisko tylko wszystkie wiersze,które dotyczą jego.
    Proszę o pomoc , nie wiem jak sobie z tym problemem poradzić.

    Pozdrawiam i z góry dziękuję.
  • Pomocny post
    Poziom 40  
    Dwa pytania na wstępie.
    Czy możesz ingerować w ten skoroszyt (dodać dodatkową kolumnę dzięki której później będziesz filtrował dane)?
    O jaką tabelę ci chodzi (z którego arkusza)?

    Jeżeli możesz ingerować w arkusz dodaj jedną kolumnę przy nazwisku. Wpisz formuły odnoszące się do nazwiska we wszystkich wierszach dotyczących tego nazwiska. Zaznacz grupę tych formuł i skopiuj w dół (dla innych nazwisk). Zaznacz całą tabelę i włącz autofiltr. W przykładzie poniżej wybierz filtr w kolumnie C. Mam nadzieję że załapiesz co jest zrobione - to proste. (Zrobiłem w kolumnie tekst na biało żeby nie drażnił oczu)

    I jeszcze jedno jaki masz sprzęt jeżeli uważasz że autofiltr wolno ci chodzi?
  • Poziom 9  
    SUPER! To działa !
    Wielkie dzięki na to nie wpadłam :)
    Co do sprzętu to chyba jest okiej,a spowalniało grupowanie (podobno miał problemy z przeliczaniem)
    Jeszcze raz dziękuję i Pozdrawiam

    Dodano po 27 [minuty]:

    Wybrałeś dobry arkusz o ten mi chodziło ( godz. -wzor):)
    Podobno najprostsze rozwiązania są najtrudniejsze.
  • Poziom 9  
    Witam!
    Dziś mój entuzjazm opadł :(
    Przy wpisaniu 350 ludzików znowu chodzi wolno.
    Rozmiar tego pliku teraz to 4,48MB, a przy grupy i konspekt (czyli przy grupowaniu)był 5,6MB.
    To jest przyczyna ................
  • Moderator Programowanie
    A może zastosować inne rozwiązanie?
    Zastanawiam się i kilku rzeczy nie mogę rozgryźć. Zapytam:
    1. Czy plik to jeden miesiąc, czy więcej?
    2. Jeżeli nie, to co będzie za pół/półtora roku?
    3. Czemu ma/miał służyć pierwszy arkusz? Zakładając, że plik to miesiąc można ten arkusz wykorzystać do przedstawiania wyników wyszukiwania (stosując listę, combobox, trochę VBA i połączenia z drugim arkuszem).
  • Poziom 40  
    Tutaj poprę przedmówcę.
    Jeden miesiąc, 350 pracowników i tyle danych. A co będzie z następnym miesiącem?
    Próbujesz zastąpić excelem porządną bazę danych w dodatku dziwacznie zredagowaną. Nic dziwnego że to musi trochę trwać.

    Ale rzeczywiście można przyśpieszyć poprzez dodatkowy formularz i formuły wyszukaj.pionowo i indeks. Z tym, że samo otwarcie pliku z 400 osobami (bez danych na moim 2,4 GHz i 786MB) trwa ze 2 minuty (dlatego skróciłem listę do 50 i spakowałem).

    Stworzyłem dwa warianty (Dodatkowe arkusze):
    W jednym - Jeżeli znasz nazwiska wpisujesz w żółtą komórkę - pamiętaj ma być takie samo jak w liście - spacja to też znak (wielkość liter nie ma znaczenia).
    Drugie rozwiązanie - dodatkowy słownik z listą pracowników w jakimś miejscu (u mnie na końcu tabeli).

    Może być jeszcze rozwiązanie z makro które tworzy słownik lub słownik na podstawie "głównego" arkusza kolumna B ale wtedy będą "dziury" w liście.

    Wyszukiwanie w przedstawionym przypadku jest szybkie ale praca na takich danych strasznie obciąża kompa -Szlag mnie trafiał jak kasowałem 300 nazwisk żeby zmniejszyć plik.

    Aby zobaczyć jak to działa wpisz trochę danych w "główny" arkusz z danymi i wybierz w arkuszach - formularzach odpowiednie nazwisko.
  • Poziom 40  
    :) Może źle napisałem. Dziury nie będą w makro tylko jeżeli za żródło listy wybierze kolumnę B w arkuszu wzór...

    Dodano po 6 [minuty]:

    I jak zwykle pytanko dla mej wiedzy:
    Co to robi?

    Code:
    Application.ScreenUpdating = False
  • Moderator Programowanie
    Blokuje odświeżanie ekranu.
    Kursor nie "lata" po ekranie i wszystkich arkuszach w czasie działania makra. Koniecznie na końcu należy ustawić na: true.

    Czego ja nie zrobiłem w powyższym przykładzie :)
    Już poprawiony...
  • Poziom 9  
    adamas_nt napisał:
    A może zastosować inne rozwiązanie?
    Zastanawiam się i kilku rzeczy nie mogę rozgryźć. Zapytam:
    1. Czy plik to jeden miesiąc, czy więcej?
    2. Jeżeli nie, to co będzie za pół/półtora roku?
    3. Czemu ma/miał służyć pierwszy arkusz? Zakładając, że plik to miesiąc można ten arkusz wykorzystać do przedstawiania wyników wyszukiwania (stosując listę, combobox, trochę VBA i połączenia z drugim arkuszem).


    Odp.1 To plik na jeden miesiąc.
    Odp.2 Za pół roku bedę miała zapchany komp na maxa :)
    Odp.3 To ma służyć do zbierania pewnych informacji dotyczacych pracy pracowników..... :)
    Nie zastępuję tym programu ,program mam,ale kontroling z mojej firmy zyczy sobie jeszcze dodatkowych szybkich informacji :) wiec myslalam ,ze moze wszystkie je umiescic w takiej tabeli teraz to robie,ale w 3,wierzcie mi masakra!

    Dodano po 11 [minuty]:

    [quote="marek003"]Tutaj poprę przedmówcę.
    Jeden miesiąc, 350 pracowników i tyle danych. A co będzie z następnym miesiącem?
    Próbujesz zastąpić excelem porządną bazę danych w dodatku dziwacznie zredagowaną. Nic dziwnego że to musi trochę trwać.


    Hmm.....może i dziwacznie zredagowane,ale ja jestem samoukiem więc nie udało mi się wymyślić czegoś lepszego..... :(

    Nie próbuję zastąpić excelem bazę danych........

    Dzięki za odzew

    Dodano po 47 [minuty]:

    Wysyłam raz jeszcze ta tabelkę tylko bez zbednego arkusza poniewaz za pierwszym razem zapomnialam go usunąć i troche mieszał.

    W kolumnie C jest zrobione przypisanie do kolumny B gdzie jest nazwisko poniewaz chodzi mi o to żebym mogła w szybki sposób znależć pracownika,który ma na nazwisko ALEKSANDER jak i ZYGMUNT :)ponieważ mam wpisać dane do tabelki z listy i to dużej, niekoniecznie ułożonej alfabetycznie.

    To jest ten sposób, który przy wpisaniu 350 ludzi zajął 4,5MB :)
    Wasze pomysły są super,ale to nie ułatwia mi dalej wpisywania danych.

    Dodano po 2 [minuty]:

    Tabelka :))))
  • Poziom 40  
    :arrow: adamas_nt
    Autorka chce najprawdopodobniej (jak wynika po wyjaśnieniu) wprowadzać dane do tabel a (przynajmniej na razie) nie chce z niej pobierać informacji.
    Wiec może formatkę do wprowadzania danych?

    W związku z powyższym parę pytań uszczegółowywujących (ale ciężkie słowo :) ) do autorki (iwanekm2).
    Czy prawdą jest to że chcesz wprowadzać a nie pobierać dane?
    Docelowo czy później to ma być drukowane (arkusz z bazą) czy może drukowany będzie tylko jeden człowiek? (chodzi o wyeliminowanie niepotrzebnych obliczeń dla każdego człowieka [końcowe kolumny tabeli] - można zrobić tak by obliczenia były w oddzielnym arkuszu dla szukanego nazwiska i dopiero to drukować.
    Skąd bierzesz dane do wpisywania? Może z innego pliku nawet tekstowego? Ewentualnie może zamiast drukować takie dane można go zapisać w wersji elektronicznej i z niej czerpać dane? - zaoszczędzi to sporo czasu.

    I ostatnie na marginesie - chyba w profilu nie pochwaliłaś się że jesteś kobietą? Bo kobiety maja ładniejsze kwadraciki pod nickiem - tak mi się wydaje :).
  • Moderator Programowanie
    Już wyjaśniam.
    Pierwszy arkusz w moim zamyśle ma spełniać zarówno rolę przedstawiania wyników z arkusza drugiego, jak i kryterium wyszukiwania pracownika. Niestety makra na przepisywanie z papieru do arkusza jeszcze nie wymyśliłem a OCR jest dobry do PIT-ów i tu raczej nie zdzierży...

    W wolnych chwilach (broniąc mojej koncepcji) dalej sobie kombinuję...
    :arrow: marek003 Myślisz o programie na formularzach (jak Access)? A arkusz trzymałby tylko wyniki?
  • Poziom 9  
    Witam! :)

    Do marek003 :)
    Tak to prawda :)ja wprowadzam dane a inni się na nie gapią,drukują i nie wiem co jeszcze ( .....kontrolują hmm...)Ja je zbieram i jakby co to robię zestawienie kwartalne,pół roczne,roczne itd.
    Dane biorę z Kart Pracy :) pisanych odręcznie przez pracownika nadzorującego zadanie X czy Y. (opracowuję i wklepuję w program ....i tabelki).

    Do adamas_nt :)
    Twój pomysł podoba mi się,ale czy jest możliwość wklepywania danych w arkusz 1 ,a zbieranie danych w arkuszu 2( gdzie są wszyscy pracownicy, oczywiście arkusz1 musiałby być pełny tzn. z dniami)?
    Makro jest dla mnie wielką zagadką.

    Pozdr.
  • Pomocny post
    Moderator Programowanie
    Cytat:
    czy jest możliwość wklepywania danych w arkusz 1 ,a zbieranie danych w arkuszu 2

    Nie. W ten sposób to tylko przy zastosowaniu formularza. Pracy na 1-2 godzinki i potem jeszcze kilka (dni) na testowanie, korekty i usuwanie błędów.
    Ale tak nawiasem pisząc: W czym różnica? Wybierasz nazwisko, dusisz guzik i możesz pracować. Jeżeli chcesz podejrzeć cały arkusz dusisz guzik i Excel posłusznie, bez wołania o podwyżkę, dodatkowy przydział kawy...
  • Poziom 9  
    Nie ma ponieważ jak napisałeś naciskam guzik i mogę pracować,ale pytałam ponieważ byłam ciekawa(tak jak napisałam wcześniej makro to dla mnie zagadka).

    Jeszcze jedno próbowałam dopisać ludzi i jakoś mi nie poszło,uciekł mi z pierwszego arkusza wiersz gdzie były zł. za ziarno itd. a poza tym po prawej stronie są magiczne cyferki (na czerwono) to wiersze z drugiego arkusza?
    Przepraszam za te głupawe pytania,ale to makro...... :(
  • Poziom 40  
    :arrow: adamas_nt
    Tak - myślałem o formularzu jak w Accessie a dane trzymać w arkuszu. Jednak tych danych do wpisania jest tyle że.. uch.

    Ale można to trochę uprościć:
    W pierwszym arkuszu-dane jedna pełna pusta tabela - taka jak w arkuszu-baza.

    Jeden przycisk "Dodaj dane" który "wkleja" tą tabelkę pod tabele już istniejące w arkuszu-bazie (naciskany po wpisaniu danych).

    Drugi przycisk - "Korekta" z wykorzystaniem twojego makra do zebrania nazwisk i wklejenia danych z odpowiedniej tabeli z arkusza-bazy do tabeli w arkuszu-dane

    Jak zaznaczyła autorka lista nie musi być alfabetyczna (chyba że źle zrozumiałem).

    Niestety na chwilę obecną nie mam zbyt dużo czasu (w mojej firmie rok obrotowy kończy się 31 marca i mam "zachrzan" że nie ma kiedy taczek załadować) a późnymi wieczorami musze odespać zmianę czasu. Jak znajdę trochę więcej wolnego czasu to spróbuje coś podrzucić ale to może potrwać nawet z tydzień.

    Dodano po 6 [minuty]:

    :arrow: adamas_nt
    Przepraszam bo nie spojrzałem na twój ostatni arkusz.
    wg mnie ok nie ma co się przyczepiać.
    Ewentualnie jeszcze przycisk NOWY który doda jedną czystą tabelę a Arkuszu-bazie.
  • Moderator Programowanie
    Te czerwone cyferki to obliczenia potrzebne dla formuł pobierających dane z drugiego arkusza (można zmienić kolor czcionki na białą). Dodawać pracowników można w drugim arkuszu. W pierwszym po wybraniu nazwiska z listy masz połączenie (tylko do odczytu) z jego danymi w arkuszu drugim i nie ma potrzeby wstawiania dodatkowych tabelek.
    Jeszcze kilka "kosmetycznych" poprawek wykonanych w międzyczasie.
  • Poziom 9  
    Drogi adamas_nt hmm.....muszę wstawić kolejne tabelki ponieważ muszę mieć w niej 350 osobników.
    Poza tym jest super :)
  • Moderator Programowanie
    Zgodnie z obietnicą. Jest już wygodny przycisk do wklejania tabelki wg. sugestii kol marek003.
    p.s. Jeszcze mogą być błędy, jakby co to pisz...

    Edit 23:39 No i wykrakałem :) Pierwsza poprawka w makro dodaj_prac:
    p.s. Możesz tylko podmieniać makra w edytorze

    Edit 2: dopisz
    Code:
    Call odkryj
    w makro: "zrob_liste" w 9 linii (następna po: "Sheets(2).Select" a przed pętlą "For"). Czasami występuje błąd w składaniu listy. Tak już jest z makrami, zawsze można coś poprawić. (w załączniku wersja z poprawkami)
  • Poziom 9  
    SUPER! :)
    Jesteście niesamowici:)
    Dziękuję i pozdr.
    (dzięki za cierpliwość i pomoc,mam nadzieję,że błędy nie będą wyskakiwać ponieważ nie wiedziałabym co robić i znowu bym WAS zamęczała).