Kategorie szkoleń | Egzaminy | Kontakt
  • 3
  • 5
  • 2.5K

Jak przyspieszyć pracę na dużej bazie w Excelu (ok. 100 000 wierszy)?

Mam w Excelu bazę danych, która ma ok. 100 000 rekordów i kilkadziesiąt kolumn. W kilku kolumnach są formuły. Niestety praca na niej jest bardzo utrudniona ze względu na to, że wszystko bardzo długo trwa. Jak mogę przyspieszyć sobie na niej pracę?

Dodam, że muszę mieć ją w Excelu.

 

 

Uczestnik szkolenia
  • Zapytał
  • @ Uczestnik szkolenia | 18.02.2015

Odpowiedzi (3)

  • 10

Witam.

Przede wszystkim tak duże bazy w Excelu nie do końca się sprawdzają. Jeżeli już musimy, możemy sobie pomóc w następujący sposób: Excel przy prawie każdej operacji odświeża, (czyli przelicza formuły od nowa, nawet jak nic się nie zmieniło). Proponowałbym przełączenie Automatycznego przeliczania formuł na ręczne. Wtedy podczas otwierania pliku, filtrowania, czy wpisywania danych, formuły już raz wpisane nie będą się aktualizowały.

Można wymusić aktualizacje formuł, przyciskiem:

  • Oblicz teraz (skrót F9) – przelicza cały skoroszyt.
  • Oblicz arkusz (skrót Shift + F9) – przelicza formuły w aktywnym arkuszu.





Należy jednak pamiętać, że zaznaczenie tej opcji powoduje, że przeliczanie ręczne jest aktywne nie tylko dla bieżącego pliku, ale dla wszystkich, które będą na danym komputerze otwierane. Trzeba za każdym razem (oczywiście, jeżeli tego chcemy) po pracy z w/w bazą włączyć przeliczanie na automatyczne.

UWAGA!

Gdy z bazy korzysta wiele osób, zdarzają się przypadki, gdy to ustawienie „przenosi się razem z plikiem” i przestawia to u innych użytkowników, przez co innym osobom, Excel przełącza się w tryb ręczny liczenia formuł.

pawel_niemyt
  • Odpowiedział
  • @ pawel_niemyt | 18.02.2015
Komentarze
  • 1

Jeżeli dodatkowo skorzystałbyś z VBA w Excelu, to wpisz poniższy kod:

Application.Calculation = xlCalculationManual - przełączam Excela do obliczeń w trybie ręcznym
instrukcja, którą chcesz wykonać
Application.Calculation = xlCalculationAutomatic - przełączam Excela do obliczeń w trybie automatycznym

Powyższy kod robi dokładnie to samo, co w pierwszym komentarzu tyle, że z poziomu VBA.

 
Dariusz_Kępiński
  • Odpowiedział
  • @ Dariusz_Kępiński | 06.04.2015
    • 7
    • 3
    • 5
  • 3

Bardzo zaawansowane, ale skuteczne jest obrabianie tak licznych danych przy użyciu ACE OLEDB (drivera Accessa) i wykonywaniu na nich SQL-owych zapytań zamiast formuł.

Jacek_Kotowski
  • Odpowiedział
  • @ Jacek_Kotowski | 13.04.2015
    • lider
    • laureat
    • ekspert
    • 60
    • 54
    • 94