Mam pewien kłopot z tabelami przestawnymi w Excelu.
Mianowicie problem jest taki, że po jakimś czasie od zbudowania tabeli przestawnej na podstawie innej tabeli, która zaciąga dane bezpośrednio z bazy danych poleceniem SQL, coś się wykrzacza i wygląda to w następujący sposób (przepraszam za brak screena, ale za nic nie mogę go załadować do posta - poszczególne słowa między ukośnikami odpowiadają kolejnym kolumnom tabeli):
i tak dalej, powtarza się kod klienta, pole z datą jest puste, kombinacja jednak zaciąga kolejne kody klientów, a wartość również pozostaje pusta. Po skasowaniu tabeli i stworzeniu jej na nowo wszystko gra i bucy, jednak nie tędy droga i zastanawiam się, co może być przyczyną takiego obrotu spraw. Dodam też, że nie zawsze (tudzież - nie na każdej wersji Excela) da się ten problem rozwiązać. Plik był tworzony na edycji 2016, ale kolega z tą samą edycją nie jest w stanie tego naprawić, a ja to robię na 2010 i wszystko się poprawia, co jest jeszcze dziwniejsze.
Bez choćby screena czy najlepiej pliku (ów) używanych do tego wiele pomóc się nie da. Z mojego doświadczenia takie problemy wynikają zazwyczaj ze złych odwołań do Twojej bazy. Czy w każdym przypadku wszystkie rubryki są wypełnione? Czy istnieją rekordy, w których pewnych danych brakuje? Excel nie lubi bałaganu w danych i różnych formatowań - np. zamiast liczbowego gdzieś masz ogólne itp. Jak używasz gdzieś w dodatku makr to problem może się jeszcze bardziej pogłębiać - ile to się nawkurzałem by wyłapać dlaczego pewne makro nie pobierało mi liczb z rubryk. Okazało się, że gdzieniegdzie formatowanie w komórkach było błędne i wystarczyło dopisać konwersję zawartości komórki by wszystko było cacy - aby uniknąć podobnych scenariuszy w przyszłości.
Makro wprawdzie jest, ale tylko i wyłącznie do tego, aby odświeżanie danych w pliku następowało w odpowiedniej kolejności, nic więcej w nim nie ma (tylko pytanie o rok raportu i komunikat, że wszystko jest wykonane).
Wszystkie dane są wypełnione, bo stworzenie na nowo tabeli niweluje problem, to jest kuriozalne dla mnie.
Ciekawostką jest jeszcze fakt, że kod klienta, który widnieje w tabeli przestawnej (K0007) nie ma swojego odpowiednika w danych źródłowych do tabeli.