Krajowy Fundusz Szkoleniowy 2026 – SPRAWDŹ WARUNKI i wyślij zapytanie!

Pivot Cache w tabelach przestawnych

Tabela przestawna wygląda dość niewinnie. Wstawiasz raport, przeciągasz pola (nagłówki tabeli źródłowej) , filtrujesz dane, grupujesz daty i wszystko działa. Problem zaczyna się wtedy, gdy tworzysz drugą tabelę przestawną z tego samego źródła i nagle okazuje się, że zmiana w jednej tabeli wpływa na drugą.

Najczęstszy przykład:

w jednej tabeli chcesz pokazać sprzedaż według lat, a w drugiej według miesięcy. Grupujesz datę w drugiej tabeli po miesiącach i po chwili widzisz, że pierwsza tabela również zmieniła układ. To nie jest błąd Excela. To efekt wspólnej pamięci tabeli przestawnej, czyli mechanizmu znanego jako Pivot Cache lubpo polsku Bufor Tabeli Przestawnej.

Warto od razu doprecyzować jedną rzecz: to zjawisko nie ma nic wspólnego z fragmentatorami (slicerami) ani osiami czasu. Fragmentator może sterować kilkoma tabelami przestawnymi jednocześnie, ale jest to świadome powiązanie raportów przez użytkownika. Wspólny Pivot Cache to mechanizm „pod spodem”, który działa niezależnie od tego, czy używasz fragmentatorów.

Ten temat jest ważny, bo tłumaczy, dlaczego tabele przestawne czasem „trzymają się razem”, mimo że użytkownik traktuje je jako osobne raporty.

Czym jest pamięć tabeli przestawnej

Pivot Cache to wewnętrzna pamięć podręczna danych (bufor), z której korzysta tabela przestawna. Excel nie pracuje bezpośrednio na źródle danych przy każdej operacji. Najpierw tworzy kopię danych w pamięci tabeli przestawnej, a potem na tej podstawie buduje raport.

Klasyczna tabela przestawna korzysta z jednego Pivot Cache. Kilka tabel przestawnych może jednak korzystać z tego samego bufora.

Wspólna pamięć oznacza, że kilka tabel przestawnych ma wspólny „silnik danych”. Bardzo ważne doprecyzowanie: tabele przestawne nie muszą mieć identycznego układu, żeby współdzielić cache. Mogą mieć:

  • inne pola w wierszach,
  • inne pola w kolumnach,
  • inne wartości,
  • inne filtry,

a mimo to nadal korzystać z tego samego bufora danych.

Dotyczy to szczególnie:

  • grupowania dat,
  • grupowania elementów tekstowych,
  • klasycznych pól i elementów obliczeniowych (w standardowej tabeli przestawnej),
  • list elementów dostępnych w polach.

Warto doprecyzować: chodzi tu o klasyczne pola obliczeniowe w zwykłych tabelach przestawnych. Miary tworzone w Modelu danych (Power Pivot, DAX) działają inaczej i nie są częścią Pivot Cache w tym sensie.

Jeżeli dwie tabele przestawne korzystają z tego samego bufora:

  • grupowanie daty w jednej tabeli może zmienić grupowanie w drugiej,
  • utworzona grupa produktów w jednej tabeli może pojawić się również w drugiej,
  • zmiana definicji pola obliczeniowego może dotyczyć wszystkich tabel opartych na tym samym buforze.

To jest główny powód, dla którego warto rozumieć Pivot Cache.

Dlaczego Excel współdzieli pamięć tabel przestawnych?

Excel nie robi tego przypadkowo. Wspólna pamięć ma sens.

Jeżeli tworzysz kilka tabel przestawnych z tego samego zakresu, tej samej tabeli Excela albo tego samego połączenia danych, Excel zwykle współdzieli Pivot Cache.

Dzieje się tak szczególnie często wtedy, gdy kopiujesz istniejącą tabelę przestawną — nowa tabela zwykle korzysta wtedy z tego samego bufora.

Dzięki temu plik:

  • zwykle zajmuje mniej miejsca,
  • zużywa mniej pamięci,
  • może działać sprawniej, szczególnie przy większych źródłach danych.

Gdy masz duże źródło danych, to ma ogromne znaczenie.

Wyobraź sobie tabelę źródłową z kilkuset tysiącami wierszy. Jeśli Excel dla każdej tabeli przestawnej utworzy osobny bufor, może przechowywać te same dane kilka razy. Plik urośnie, odświeżanie potrwa dłużej, a praca na skoroszycie może stać się mniej komfortowa.

Dlatego wspólny Pivot Cache nie jest zły. W wielu raportach jest wręcz najlepszym rozwiązaniem.

Wspólny bufor warto zostawić, gdy:

  • tabele są częścią jednego dashboardu,
  • raporty mają pokazywać te same dane w spójny sposób,
  • zależy Ci na mniejszym rozmiarze pliku,
  • źródło danych jest duże,
  • chcesz odświeżać wszystko razem,
  • planujesz używać wspólnych fragmentatorów lub osi czasu,
  • nie potrzebujesz niezależnego grupowania.

Odświeżenie uruchamiasz z poziomu konkretnej tabeli przestawnej, ale jeśli korzysta ona ze wspólnego cache, to odświeżany jest bufor danych, a więc efekt będzie widoczny we wszystkich tabelach korzystających z tego samego cache.

Problem zaczyna się dopiero wtedy, gdy tabele mają być naprawdę niezależne.

Jak działa grupowanie dat na jednej pamięci tabeli przestawnej?

Pivot Cache w tabelach przestawnych

Jak utworzyć tabele przestawne z osobnymi pamięciami?

Najlepiej myśleć o osobnym buforze już podczas tworzenia tabeli przestawnej. Rozdzielanie istniejących tabel jest możliwe, ale bywa mniej wygodne.

Metoda 1: stary kreator tabeli przestawnej

W niektórych wersjach polskiego Excela można spróbować użyć starego kreatora tabel przestawnych skrótem:

Alt → D → K

W angielskiej wersji często spotkasz skrót:

Alt → D → P

Warto jednak zaznaczyć, że skróty mogą się różnić w zależności od wersji Excela i interfejsu. Bezpieczniejszym rozwiązaniem jest dodanie polecenia „Kreator tabel i wykresów przestawnych” do paska Szybki dostęp.

Stary kreator jest przydatny, bo w niektórych sytuacjach Excel pyta, czy chcesz użyć istniejącej pamięci podręcznej. Jeżeli chcesz utworzyć osobną pamięć, wybierasz odpowiedź typu Nie.

To jest dobra metoda szkoleniowa, ale trzeba pokazać ją uczciwie: zachowanie może zależeć od wersji Excela, typu źródła danych i sposobu tworzenia tabeli.

Film poniżej pokazuje, jak to wykonać skrótem ALT+D+K.

Pivot Cache w tabelach przestawnych

Metoda 2: formalnie inne źródło danych

Druga metoda jest mniej elegancka, ale bardzo praktyczna. Tworzysz drugą tabelę przestawną ze źródła, które dla Excela wygląda jak inne źródło.

Przykład:

  • Tabela przestawna 1: A1:D1000
  • Tabela przestawna 2: A1:E1000

Kolumna E może być techniczna, pusta albo pomocnicza. Dla użytkownika dane są właściwie te same, ale dla Excela zakres źródłowy jest inny.

Możesz też zrobić kopię tabeli źródłowej:

  • tabelaSprzedaz
  • tabelaSprzedaz_2

Następnie pierwszą tabelę przestawną tworzysz z tabelaSprzedaz, a drugą z tabelaSprzedaz_2.

To rozwiązanie działa, ale warto jasno powiedzieć: to obejście techniczne, które może być mniej odporne na zmiany w danych (np. rozszerzanie zakresu, zmiany struktury tabeli). W profesjonalnych modelach raportowych nie powinno być pierwszym wyborem.

Trzeba jednak pilnować, aby oba zakresy obejmowały ten sam zestaw rekordów, inaczej wyniki tabel mogą się różnić nie z powodu cache, lecz z powodu różnych danych wejściowych.

Film poniżej pokazuje, jak to może wyglądać w praktyce.

Pivot Cache w tabelach przestawnych

Jak rozdzielić pamięć już istniejących tabel przestawnych

Tu trzeba powiedzieć rzecz najważniejszą: Excel nie ma prostego przycisku „rozdziel pamięć tej tabeli przestawnej”.

Nie oznacza to jednak, że nie da się tego zrobić. Są dwie praktyczne drogi.

Sposób 1: przebudowanie jednej tabeli od nowa

Najprostsza metod:

  1. Zostaw pierwszą tabelę przestawną bez zmian.
  2. Usuń drugą tabelę przestawną.
  3. Utwórz drugą tabelę ponownie, ale z formalnie innego źródła danych jak omawialiśmy wcześniej w metodzie 2 poprzedniego rozdziału.
  4. Odtwórz układ pól, filtry i formatowanie.

To nie jest najbardziej efektowne, ale bywa najbezpieczniejsze. Szczególnie wtedy, gdy tabela nie jest bardzo skomplikowana. Jak dodamy pustą kolumnę do źródła będzie nam na liście pól wisiał mały fantomik w postaci domyślnego pustego pola np. Pole3.

Film poniżej pokazuje, jak wygląda to w praktyce.

Pivot Cache w tabelach przestawnych

Sposób 2: utworzenie nowej tabeli przez stary kreator

Możesz też utworzyć nową tabelę przestawną przez stary kreator i spróbować wymusić nową pamięć, jeśli Excel pokaże odpowiednie pytanie. Potem przenosisz układ raportu albo odtwarzasz go ręcznie.

To nadal bardziej metoda „utwórz nową tabelę z osobnym buforem” niż „rozdziel istniejącą tabelę jednym kliknięciem”.

Film jak to wykonać jest na początku tego materiału.

Zalety i wady osobnych pamięci

Osobny Pivot Cache daje większą niezależność. Możesz mieć jedną tabelę grupowaną po latach, drugą po miesiącach, a trzecią po własnych grupach produktów. Możesz też tworzyć klasyczne pola obliczeniowe bez ryzyka, że zmiana definicji wpłynie na inny raport.

To szczególnie przydatne, gdy robisz różne warianty analizy na tym samym źródle danych.

Trzeba jednak pamiętać o kosztach takiego rozwiązania.

Osobne pamięci oznaczają:

  • większy rozmiar pliku,
  • większe zużycie pamięci,
  • wolniejsze odświeżanie,
  • większe ryzyko niespójności (np. gdy raporty są odświeżane w różnym czasie),
  • trudniejsze diagnozowanie problemów.

Dodatkowe ryzyko pojawia się wtedy, gdy korzystasz z kopii źródła danych — jeśli dane w tych kopiach się rozjadą, raporty mogą pokazywać różne wyniki.

Wspólna pamięć jest lepsza, gdy priorytetem jest wydajność, mały rozmiar pliku i spójność. Osobna pamięć jest lepsza, gdy priorytetem jest niezależność raportów.

Najprostsza zasada:

Jeden dashboard, te same dane, wspólna logika — zostaw wspólny cache.

Różne grupowania, różne pola obliczeniowe, niezależne raporty — rozważ osobne cache.

Warto też podkreślić: rozdzielenie cache nie jest celem samym w sobie. To narzędzie do rozwiązania konkretnego problemu, a nie ogólna dobra praktyka dla każdej tabeli przestawnej.

Ważne zastrzeżenia

Na koniec kilka istotnych wskazówek, które pomagają uniknąć potencjalnych problemów:

  • Opis dotyczy głównie klasycznych tabel przestawnych opartych na Pivot Cache.
  • Tabele przestawne oparte na Modelu danych (Power Pivot), OLAP lub zewnętrznych źródłach danych działają inaczej — mechanizm pamięci i współdzielenia jest tam inny.
  • Tabele przestawne oparte na różnych źródłach danych zwykle nie współdzielą tego samego cache.
  • Fragmentatory i osie czasu mogą łączyć kilka tabel przestawnych, ale to osobny mechanizm — nie należy go mylić ze współdzieleniem Pivot Cache.
  • Wspólny cache często ułatwia użycie fragmentatorów, bo fragmentatory najłatwiej łączyć z tabelami przestawnymi opartymi na tym samym źródle danych lub tym samym cache.
  • Zachowanie Excela może zależeć od wersji programu, typu źródła danych oraz sposobu utworzenia tabeli przestawnej.
  • Wymuszenie osobnego cache nie zawsze jest możliwe jednym kliknięciem i czasem wymaga obejść lub przebudowy tabeli.
  • Tworzenie wielu osobnych cache zwiększa rozmiar pliku i może wpływać na wydajność — warto robić to świadomie.
  • Dla bardziej zaawansowanych użytkowników: liczbę Pivot Cache w skoroszycie można sprawdzić w VBA, np. przez ActiveWorkbook.PivotCaches.Count. Ta liczba pokazuje liczbę obiektów PivotCache w skoroszycie, ale jej interpretacja może być mniej oczywista przy zewnętrznych źródłach danych, Modelu danych lub bardziej złożonych połączeniach.

Podsumowanie

Pivot Cache to jeden z tych mechanizmów Excela, których użytkownik zwykle nie widzi, ale które mocno wpływają na zachowanie tabel przestawnych.

Jeżeli dwie tabele przestawne korzystają ze wspólnej pamięci, mogą zachowywać się jak połączone raporty. Grupowanie dat, grupy niestandardowe i klasyczne pola obliczeniowe mogą działać wspólnie. To nie jest awaria. To efekt wspólnego bufora.

Nie należy jednak rozdzielać pamięci automatycznie przy każdej tabeli. Wspólny Pivot Cache często jest korzystny, bo zwykle zmniejsza plik, może usprawniać pracę i ułatwia spójne odświeżanie danych.

Osobne pamięci mają sens wtedy, gdy tabele przestawne mają działać niezależnie — np. przy różnych grupowaniach, różnych logikach analizy lub klasycznych polach obliczeniowych.

W praktyce najlepsze podejście brzmi tak: najpierw sprawdź, czy naprawdę potrzebujesz osobnej pamięci. Jeśli tak, wybierz metodę odpowiednią do sytuacji. A jeśli ktoś mówi, że „Excel sam coś miesza w tabelach przestawnych”, to bardzo możliwe, że przyczyną jest wspólny Pivot Cache.

Zobacz również:

Szkolenia:

udostępnij:
Gratulacje!
Formularz został wysłany prawidłowo.
Dziękujemy za przesłanie zapytania. Skontaktujemy się z Tobą najszybciej jak to możliwe.