fbpx

Jak uniknąć kolumn niestandardowych w Power Query?

17.10.2023 | Power Query

Zapewne często korzystasz w Power Query z dodawania kolumn niestandardowych do przekształceń, których nie da się wyklikać z interfejsu. Sama też tak robię. I nie wiem, jak Ciebie, ale mnie strasznie wkurza, że w wielu sytuacjach, muszę potem usuwać oryginalną kolumnę, na której robiłam te przekształcenia. Tak, jak np. w poprzednim wpisie, gdzie przerabialiśmy numer miesiąca na jego nazwę. 

Zamiast dodawania, a potem usuwania, wolałabym po prostu przekształcić kolumnę źródłową: 

Transformacja

I w tym artykule pokażę Ci jak to zrobić przy pomocy funkcji Table.TransformColumns. 

Będziemy działać na zapytaniu z poprzedniego wpisu, a zatem chcemy przerobić numer miesiąca na nazwę miesiąca. Dane te mamy w kolumnie miesiąc, o tak: 

Dane wyjściowe

I teraz chcemy przerobić kolumnę Miesiąc. Dodajmy zatem krok niestandardowy po ostatnim kroku (u mnie jest to krok o nazwie Pogrupowano wiersze). 

Krok niestandardowy dodajemy klikając ikonkę Fx obok paska formuły: 

Dodanie kroku niestandardowego

Na pasku formuły otrzymujemy odwołanie do poprzedniego kroku, czyli w naszym wypadku do tabeli: 

Odwołanie do poprzedniego kroku

I właśnie kolumny tej tabeli będziemy chcieli transformować. Konkretnie kolumnę Miesiąc. W tym celu napiszemy formułę, bezpośrednio w pasku formuły. Oto ona: 

= Table.TransformColumns(#"Pogrupowano wiersze", {{"Miesiąc", each Date.MonthName(_ *29)}}) 

Zobacz, że użyliśmy tutaj funkcji Table.TransformColumns, która potrzebuje od nas dwóch argumentów: 

  1. Tabeli, którą będzie transformować: jest to tabela z poprzedniego kroku 
  2. Listy transformacji, których ma dokonać, składającej się z mniejszych list. Każda mniejsza lista zawiera nazwę kolumny (tekstowo!!!), którą będzie transformowana oraz funkcję, określającą transformację 

My dokonujemy tylko jednej transformacji, zatem lista główna będzie zawierała tylko jedną listę: 

Logika funkcji Table.TransformColumns

Zauważ, że w części transformacyjnej mamy funkcję robiącą dokładnie to samo, co robiliśmy za pomocą dodawania kolumny, jedynie zapis jest ciut inny: używa znaku podkreślenia (_), zamiast odwołania się do konkretnej kolumny: [Miesiąc]. Jest to spowodowane inną logiką funkcji Table.TransformColumns vs funkcji Table.AddColumn. Ta pierwsza działa w kontekście kolumny wskazanej tekstowo (”Miesiąc”), a druga – działa w kontekście rekordu. 

I to w zasadzie tyle 😊. 

Na koniec można dodać jeszcze jeden krok, zmieniający typ danych w kolumnie Miesiąc na tekstowy. To akurat można wyklikać z interfejsu. 

Efekt końcowy jest następujący: 

Wynik transformacji

Fajne, prawda? Tę technikę można stosować oczywiście do bardziej zaawansowanych transformacji, np. przy imporcie plików z folderu. Jak zwykle ograniczeniem jest tylko nasza wyobraźnia 😊. 


Plik do pobrania:

 

 

I film na Youtubie, gdzie pokazuję powyższe rozwiązanie:

 

 

Jeżeli chcesz lepiej poznać Power Query zapisz się na listę zainteresowanych kursem Power Query w Excelu od podstaw! Podczas oczekiwania na kurs będę Ci wysyłała informacje i ciekawostki na temat Power Query. Bezpłatnie! 

Pomogłam Ci? Postaw mi wirtualną kawę! →

Przeczytaj podobne wpisy

Kategorie

0 komentarzy

Wyślij komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *