Proces importowania i łączenia wielu plików w Power Query wymaga precyzyjnego podejścia do wyboru źródła, filtrowania danych oraz zrozumienia zależności między zapytaniami. Pierwszym krokiem jest wskazanie odpowiedniego folderu, z którego mają zostać zaimportowane pliki. Po wyborze folderu Power Query automatycznie wyświetla listę plików w tym katalogu, umożliwiając dalszą ich transformację. W praktyce warto zwrócić uwagę na to, czy w folderze nie znajdują się podfoldery, pliki o nieobsługiwanych rozszerzeniach lub ukryte pliki, które mogą zakłócić proces importu. Choć w opisanym przykładzie nie było takich przeszkód, stosowanie filtrów na kolumnie rozszerzeń jest dobrym nawykiem, który pozwala uniknąć potencjalnych problemów w przyszłości.

Filtrowanie plików po rozszerzeniu, na przykład ".xlsx", ogranicza zakres danych tylko do oczekiwanych typów plików. W Power Query takie filtrowanie jest realizowane za pomocą funkcji Table.SelectRows, która wybiera tylko wiersze spełniające warunek dotyczący wartości w kolumnie. To umożliwia utrzymanie porządku w danych i poprawę efektywności transformacji.

Po oczyszczeniu zbioru plików można przystąpić do ich rozpakowywania i łączenia. Kliknięcie ikony w kolumnie Content otwiera okno Combine Files, gdzie należy wybrać plik bazowy do dalszych transformacji. Wybór ten ma kluczowe znaczenie: decydując się na pierwszy plik z listy, ryzykujemy, że wprowadzone zmiany w strukturze folderu mogą wpłynąć na dane źródłowe, jeśli np. pojawi się plik z nazwą alfabetycznie wcześniejszą. Z kolei wybranie konkretnego pliku jako źródła gwarantuje stabilność, ale niesie ryzyko błędów, jeśli ten plik zostanie usunięty lub przemianowany. W przedstawionym przypadku wybrano pierwszą opcję, jako bardziej elastyczną w sytuacji, gdy wszystkie pliki mają podobną strukturę, ale mogą się zmieniać ich nazwy.

Kolejnym aspektem jest wybór arkusza w pliku źródłowym, zwykle wystarcza pierwsza zakładka, z której pobierane są dane. W wyniku tych działań powstaje zapytanie główne, w tym przykładzie nazwane Sales, które automatycznie łączy dane z wybranych plików. Jednak warto zwrócić uwagę na potencjalne problemy z nagłówkami kolumn – Power Query domyślnie traktuje pierwszą linię pliku jako nagłówki, co w sytuacji, gdy np. w pierwszej komórce znajduje się imię sprzedawcy zamiast nazwy kolumny, może prowadzić do błędów i niepoprawnego wypełnienia danych.

W kodzie M funkcja Table.ExpandTableColumn służy do rozszerzania zawartości kolumn zawierających tabele, bazując na kolumnach wyodrębnionych z przykładowego pliku. Automatycznie generowana funkcja Transform File odpowiada za przeprowadzanie transformacji na pliku bazowym, co pozwala na jednolite przetwarzanie danych w wielu plikach.

Zrozumienie zależności między zapytaniami jest niezbędne do efektywnego zarządzania całym procesem. Power Query oferuje narzędzie Query Dependencies, które wizualizuje przepływ danych i relacje między poszczególnymi zapytaniami oraz źródłami danych. Dzięki temu można ocenić, które zapytania są kluczowe i jak usunięcie lub modyfikacja jednego z nich wpłynie na inne. Przykładowo, próba usunięcia zapytania, od którego zależą inne, powoduje ostrzeżenia, które chronią przed niezamierzonymi błędami.

Nawet jeśli wstępnie wydaje się, że niektóre zapytania można usunąć bez szkody, należy brać pod uwagę ich pośrednią rolę w całym procesie transformacji. Ich obecność lub modyfikacja może wpływać na funkcje i parametry używane przez inne zapytania.

Ważne jest, by czytelnik rozumiał, że Power Query to nie tylko narzędzie do importu i łączenia danych, lecz także zaawansowany system zarządzania transformacjami i ich wzajemnymi powiązaniami. Każda zmiana w strukturze danych, nazewnictwie plików czy parametrach zapytań może wpłynąć na końcowy wynik, dlatego planowanie i dokumentacja przepływu zapytań jest kluczowa. W pracy z większymi zbiorami danych i rozbudowanymi projektami dobrze jest utrzymywać porządek, stosować filtry zabezpieczające przed nieoczekiwanymi zmianami oraz regularnie analizować zależności między zapytaniami.

Jak usunąć niepotrzebne kolumny w Power Query za pomocą dynamicznych formuł?

W pracy z danymi w Power Query często występuje konieczność usunięcia niepotrzebnych wierszy lub kolumn. W takich sytuacjach automatyzacja procesu staje się kluczowa, szczególnie gdy dane mogą ulegać zmianom lub struktura arkusza może się różnić w zależności od źródła. Celem jest stworzenie dynamicznego rozwiązania, które będzie reagować na zmiany w strukturze danych bez konieczności ręcznego dostosowywania zapytań za każdym razem. Poniżej przedstawiono sposób na usunięcie ostatnich dwóch kolumn z tabeli, korzystając z funkcji Power Query, który umożliwia stworzenie elastycznego rozwiązania.

Pierwszym krokiem w procesie jest załadowanie danych do Power Query z wybranego arkusza, na przykład „Report1” z pliku „RemoveLastColumns.xlsx”. Po załadowaniu danych do zapytania, należy zadbać o poprawność struktury tabeli, usuwając wszystkie kroki, które mogłyby wprowadzać zmiany w typach danych lub nagłówkach, a które mogłyby spowodować błędy w przypadku zmiany nazw kolumn w źródłowym pliku.

Następnie, aby usunąć ostatnie dwie kolumny z tabeli, można użyć dynamicznej formuły, która będzie odnosiła się do listy nazw kolumn i na jej podstawie zdecyduje, które kolumny należy usunąć. Proces rozpoczyna się od wywołania funkcji „Table.ColumnNames”, która zwróci listę wszystkich nazw kolumn w tabeli. Ważne jest, aby ta lista była dynamiczna, ponieważ w przypadku zmiany liczby kolumn, rozwiązanie musi dostosować się do nowych warunków.

Aby usunąć ostatnie dwie kolumny, wykonuje się następujące kroki: po uzyskaniu listy nazw kolumn należy skorzystać z funkcji „Remove Bottom Items” dostępnej w Power Query, która pozwala usunąć określoną liczbę ostatnich elementów z listy. W tym przypadku należy usunąć dwa ostatnie elementy, co skutkuje otrzymaniem listy nazw kolumn, które mają pozostać w tabeli.

Kolejnym krokiem jest zastosowanie funkcji „Table.SelectColumns”, która przyjmuje dwie argumenty: pierwszy to odwołanie do tabeli, z której mają zostać wybrane kolumny, a drugi to lista kolumn do zachowania. W ten sposób, bazując na uzyskanej liście, tworzymy nową wersję tabeli, która zawiera tylko te kolumny, które są istotne.

Warto zauważyć, że w przypadku, gdy dane mają być używane w różnych kontekstach lub pochodzą z różnych źródeł, należy zadbać o uniwersalność takich rozwiązań. Nawet jeśli początkowo dotyczy to tylko jednego arkusza, można zastosować podobne podejście do pracy z wieloma arkuszami jednocześnie, co pozwala na znaczne skrócenie czasu potrzebnego na import danych.

W procesie przekształcania danych może również pojawić się konieczność zmiany formatu danych, na przykład w celu zamiany nagłówków miesięcy na wartości w jednej kolumnie. W tym celu wykorzystuje się funkcję „Unpivot”, która przekształca dane, zamieniając szeroką tabelę z miesiącami na długą wersję, gdzie każdy miesiąc jest osobnym wierszem.

Oprócz opisanej metody usuwania ostatnich dwóch kolumn, warto również zrozumieć, że w pracy z Power Query istotne jest myślenie o danych w sposób dynamiczny. Zamiast polegać na sztywnych ustawieniach, które mogą nie działać w przypadku zmian w strukturze danych, warto wykorzystać formuły i funkcje, które będą w stanie dostosować się do nowych warunków, niezależnie od liczby kolumn czy wierszy w źródłowym pliku.

Ważnym elementem tej procedury jest również uwzględnienie zmian, które mogą wystąpić w plikach Excel, takich jak dodanie nowych miesięcy czy zmiana kolejności kolumn. Dlatego kluczowe jest stworzenie zapytań, które będą w stanie poradzić sobie z tymi zmianami bez generowania błędów. Jeśli dane zawierają kolumny z danymi, które nie są regularnie aktualizowane, usunięcie tych kolumn za pomocą dynamicznych funkcji jest rozwiązaniem, które pozwala utrzymać porządek w tabeli, minimalizując ryzyko błędów przy każdym załadunku nowych danych.