Czym jest lista w Power Query? Jak je tworzyć i zastosować w praktyce?

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!

Czym są i gdzie znajdziemy listy?

Zaczniemy od początku, czyli rozmowy o kolumnach strukturalnych, które w Power Query dzielą się na trzy typy:

  • Listy,
  • Rekordy,
  • Tabele.

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 Expand column icon 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:

Ręczne tworzenie list

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}

Generowanie kolejnych wartości

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ć:

  • listę liczb w kolejności od 1 do 100 – wpiszemy ={1..100},
  • listę liter od ”a” do ”z” – wpiszemy ={”a”.. ”z”}.

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.

Generowanie dowolnych wartości

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.

Sprawdź kursy Microsoft Power Query!
Oczywiście na łamach jednego artykułu nikt nie jest w stanie odkryć wszystkich tajemnic narzędzia, dlatego jeśli chcesz dowiedzieć się dużo więcej i przetestować rozwiązania w praktyce, koniecznie zapisz się na nasze szkolenia z Power Query!

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.

Lista dat

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ą:

  • pierwszy z nich oczekuje daty (wykorzystamy do tego funkcję #date),
  • drugi, liczby – tutaj podamy liczbę elementów np. 365,
  • trzeci, kroku – liczba dni, godzin, minut, sekund – dodatnie = rosnąco, ujemne = malejąco (wykorzystamy do tego funkcję #duration).

Poniższa animacja pokazuje zbudowanie listy wszystkich dat z roku 2025, a następnie przekształcenie listy do postaci tabeli.

Zliczanie wystąpień danego znaku w ciągu tekstowym

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:

  1. Pierwszy krok to wygenerowanie listy, na której znajdą się wypisane pozycje każdego separatora w tekście. Skorzystamy z funkcji Text.PositionOfAny, która mimo, że jest funkcją tekstową, to w wyniku generuje listę. Składnia funkcji:
    • text – teksty, których używamy w funkcji – kolumna Miasta,
    • characters – lista separatorów – u nas lista jednoelementowa zawierająca separator (średnik),
    • occurrence – informacja czy interesuje nas np. pierwsze wystąpienie, ostatnie czy wszystkie – u nas wszystkie – opcja Occurrence.All.
  2. Drugi krok to zliczenie, ile elementów wygenerowała nam lista otrzymana w kroku pierwszym za pomocą funkcji List.Count. Składnia funkcji:
    • list – jedyny argument, jest to lista, z której zliczane będą elementy.
  3. Trzeci krok to dodanie do wyniku cyfry 1, aby dzięki temu uzyskać prawidłową liczbę miast.
  4. Ostatni krok to dodanie nowej kolumny, w której podzielimy wartości z kol. Wydatki przez wartości z kol. Liczba miast.

Pełne rozwiązanie ilustruje poniższa animacja:

Podsumowanie

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. 😊

Zobacz również:

Szkolenia:

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