Jeśli miałeś/aś już do czynienia z Power Query, pewnie pracowałeś/aś z kolumnami i tabelami. Ale czy wiesz, że jednym z najpotężniejszych (a jednocześnie najmniej docenianych) elementów Power Query są… listy?
Lista to podstawowy typ danych w języku M (czyli języku Power Query), który może przechowywać zbiory wartości — liczby, teksty, daty, a nawet inne listy! Działa trochę jak tablica w językach programowania, ale jest znacznie bardziej intuicyjna i elastyczna.
Na łamach tego artykułu postaramy się przybliżyć Ci czym są, do czego służą i gdzie w praktyce możesz zastosować listy w swoich zapytaniach!
Zaczniemy od początku, czyli rozmowy o kolumnach strukturalnych, które w Power Query dzielą się na trzy typy:
Tabele są najpopularniejsze, to w końcu na nich wykonujemy większość przekształceń. Rekordami nie będziemy się dzisiaj zajmować, natomiast wspólne dla wszystkich kolumn strukturalnych jest to, że w ich nagłówku pojawia się specjalny znacznik do rozwijania. Być może spotkałeś/aś się już wcześniej z taką sytuacją w Power Query.
Wykonując podstawowe operacje statystyczne w Power Query takie jak Suma, Średnia, Mediana etc. Power Query wyodrębnia z Tabeli jedną kolumnę tworząc z niej Listę, a następnie wykonuje operację matematyczną. Wszystko to dzieje się automatycznie, ale my pokażemy jak ten proces zachodzi krok po kroku.
Najpierw wykonamy przekształcenie polegające na zsumowaniu wartości w kolumnie Wydatki. Program wygeneruje nam funkcję List.Sum, która dodaje do siebie elementy listy wyodrębnione z tabeli Suma wydatków, kolumna Wydatki.
Następnie usuniemy ten krok i wykonamy przekształcenia ręcznie, aby zobaczyć, że lista faktycznie się generuje. Etapy przedstawia poniższa animacja:
Przechodząc do szczegółów, Lista w Power Query to po prostu kolekcja wartości — może to być ciąg liczb, dat, tekstów lub nawet bardziej złożone struktury. Jest jednowymiarowa (w odróżnieniu od tabeli), ale za to niesamowicie elastyczna.
Składnia listy składa się przede wszystkim z nawiasów klamrowych, a wewnątrz podajemy elementy listy, każdy rozdzielając przecinkiem. Poniżej przykład listy, która będzie składała się z cyfry, tekstu i wartości logicznej.
={1, ”a”, true}
Aby wygenerować w Power Query listę kolejnych, następujących po sobie wartości wystarczy podać pierwszy oraz ostatni element listy, a między elementy wstawić dwie kropki. Np. chcemy wygenerować:
A po co właściwie nam takie listy? Są one wykorzystywane choćby w przekształceniach tekstu – podczas dzielenia kolumn!
Poniżej przykład ręcznego tworzenia wspomnianych list, a także lista zastosowana podczas dzielenia danych na kolumny.
Takie tworzenie list sprawdza się, gdy potrzebujemy wygenerować kolejne, następujące po sobie wartości w kolejności rosnącej.
A co jeśli zechcemy wygenerować wartości z innym krokiem niż 1? Albo generować wartości malejąco? Takie proste napisanie listy nie przejdzie – Power Query zwróci w wyniku wartość null. Aby wykonać zadanie musimy posiłkować się funkcją listy taką jak List.Numbers.
Jej składnia prezentuje się następująco:
Pierwszy argument to liczba początkowa, od której ma się rozpocząć generowanie serii np. 100.
Drugi argument to liczba elementów, które mają być na liście np. 50,
Trzeci argument to krok – dodatni = kolejność rosnąca, ujemny = kolejność malejąca np. -2.
Co w sytuacji, gdy pracujemy z danymi i potrzebujemy stworzyć listę dat z wybranego okresu, aby wykorzystać ją np. do tzw. tabeli dat? Tutaj również z pomocą przychodzą listy! Mamy w Power Query dedykowaną funkcję jak List.Dates, dzięki której możemy wygenerować listę dat, którą następnie przekształcimy w tabelę.
Składnia funkcji przedstawia się następująco:
Istotnym podczas budowania funkcji jest zwrócenie uwagi na argumenty oraz typy danych jakich wymagają:
Poniższa animacja pokazuje zbudowanie listy wszystkich dat z roku 2025, a następnie przekształcenie listy do postaci tabeli.
W ostatnim przykładzie pokażemy wykorzystanie list w pracy z tabelą. Celem zadania jest obliczyć, ile mamy miast w kolumnie – osiągniemy to poprzez zliczenie separatora, który dzieli każde wystąpienie miasta. Liczba separatorów + 1 da nam w efekcie liczbę miast.
Dzięki tej informacji będziemy mogli podzielić kolumnę Wydatki przez Liczbę miast co da nam w wyniku średni wydatek przypadający na miasto.
Rozwiązanie będzie składało się z czterech etapów:
Pełne rozwiązanie ilustruje poniższa animacja:
Listy w Power Query to potężne, choć często niedoceniane narzędzie, które pozwala znacznie rozszerzyć możliwości przekształcania danych – zarówno w prostych, jak i bardziej zaawansowanych przypadkach.
Dzięki nim możemy dynamicznie generować zakresy liczbowe, daty, tworzyć własne zestawy wartości, operować na tekstach, a nawet wspomagać podziały i obliczenia w tabelach. Listy to nie tylko teoria, ale przede wszystkim praktyczne rozwiązania: od listy dat do kalendarza, przez generowanie niestandardowych serii liczbowych, aż po analizę danych tekstowych w kolumnach. Ich zastosowanie nie wymaga zaawansowanej znajomości języka M – wystarczy odrobina świadomości, gdzie mogą się przydać.
Jeśli chcesz lepiej zrozumieć działanie Power Query, warto zaprzyjaźnić się z listami – otworzą Ci drzwi do bardziej elastycznych i inteligentnych transformacji danych. 😊