W Power Query dodanie kolumny indeksu, zaczynającej się od zera, jest pierwszym krokiem do bardziej zaawansowanego przekształcania danych. Używając polecenia „Index Column” z zakładki „Add Column”, uzyskujemy numerację wierszy, która staje się podstawą do dalszych operacji na zbiorach danych. Kluczową techniką jest zastosowanie operacji modulo na tej kolumnie indeksu, co pozwala na równomierne podzielenie danych między dwie lub więcej kategorii. W praktyce, po wybraniu kolumny indeksu i przejściu do zakładki „Transform” oraz rozwinięciu opcji „Standard”, wybieramy „Modulo”, wpisując wartość, np. 2, co daje nam dwie grupy oznaczone wartościami 0 i 1.
Taka operacja pozwala na tworzenie powiązań między wartościami z jednej kolumny, a określonymi etykietami czy kategoriami, analogicznie jak w przypadku kolumn zawierających nazwy atrybutów. W sytuacji, gdy dane są w postaci liczbowej, konieczne jest przekształcenie tych wartości na czytelne nazwy kolumn, co realizuje się poprzez komendę „Replace Values” lub po wykonaniu pivotowania – poprzez ręczną zmianę nazw kolumn.
Aby prawidłowo przygotować dane do operacji pivotowania, należy upewnić się, że nagłówki znajdują się w jednej kolumnie (np. Attribute.1). Następnie dodajemy kolumnę indeksu, co pomaga w grupowaniu powtarzających się wartości. Wykorzystanie operacji dzielenia całkowitego („Integer-Divide”) na kolumnie indeksu z wartością dzielnika równą liczbie kolumn opisujących pojedynczą grupę danych (np. 2) tworzy identyfikatory grup, co jest niezbędne do prawidłowego pivotowania. Dzieląc wartości indeksu, otrzymujemy numery grup, które Power Query wykorzystuje do rozpoznawania zestawów danych.
Końcowe etapy transformacji polegają na wyborze kolumny z nagłówkami, wykonaniu polecenia „Pivot Column”, wskazaniu kolumny z wartościami oraz wybraniu opcji „Don’t Aggregate”, co pozwala na uniknięcie niechcianej agregacji danych. Po zakończeniu tych czynności kolumna indeksu przestaje być potrzebna i może zostać usunięta. Wynik końcowy jest następnie załadowany do Excela jako uporządkowana tabela, gotowa do dalszej analizy.
Istotne jest zrozumienie, że operacje modulo i dzielenia całkowitego są nie tylko narzędziami technicznymi, ale służą budowaniu logicznej struktury danych, pozwalającej na ich efektywne grupowanie i transformacje. Dzięki temu możliwe jest rozbicie skomplikowanych i nieuporządkowanych zestawów danych na czytelne segmenty, co znacząco ułatwia ich analizę oraz przygotowanie raportów.
Dodatkowo warto pamiętać, że podczas pracy z dużymi zestawami danych ważne jest utrzymanie spójności w nazewnictwie kolumn oraz dbanie o właściwe formatowanie danych wejściowych (np. konwersja dat do odpowiedniego formatu). W Power Query każdy krok transformacji jest ważny, a jego efekty mogą rzutować na kolejne operacje, dlatego konieczne jest świadome podejście do etapów przekształcania.
Zastosowanie tych technik jest fundamentem do dalszej automatyzacji procesów analitycznych i umożliwia tworzenie bardziej zaawansowanych rozwiązań, takich jak dynamiczne raportowanie czy integracja z innymi narzędziami analitycznymi.
Jak obliczyć i zoptymalizować ceny po zastosowaniu rabatu w Power Query?
W procesie analizy danych często spotykamy się z potrzebą obliczeń, które uwzględniają różnorodne parametry, takie jak ilość, cena, rabat. W kontekście Power Query, jednym z najczęstszych scenariuszy jest obliczanie ceny po rabacie na podstawie kilku kolumn. Omówię teraz krok po kroku, jak wykonać obliczenia, zoptymalizować je i wyeliminować potencjalne błędy, które mogą wystąpić podczas przetwarzania danych.
Po wybraniu odpowiednich kolumn (w tym przypadku kolumny z ilościami, cenami oraz rabatami) i przejściu do karty "Dodaj kolumnę", możemy skorzystać z opcji "Mnożenie", która, na pierwszy rzut oka, wydaje się być odpowiednia do wykonania obliczenia ceny po rabacie. Jednakże, w trakcie analizy wyników okazuje się, że pierwotna funkcja mnożenia prowadzi do nieprawidłowych rezultatów. Zauważymy to na przykładzie dwóch pierwszych wierszy, gdzie wynik w pierwszym wierszu wynosi 0, a w drugim – 25, mimo że wartości w kolumnach Ilość i Cena są identyczne.
Rozbieżność wynika z zastosowanej funkcji, która ignoruje wartości null w obliczeniach. W przypadku pierwszego wiersza, gdy w kolumnie Rabat znajduje się wartość 0 (brak rabatu), funkcja mnoży 5 * 5 * 0. W drugim wierszu, jeśli rabat wynosi null, funkcja List.Product wykonuje mnożenie tylko na podstawie dostępnych wartości, czyli 5 * 5. Warto jednak zauważyć, że samo mnożenie wartości rabatu przez ceny nie jest odpowiednim podejściem. Rabat należy potraktować inaczej – jako wartość do odjęcia od 100% przed wykonaniem obliczenia.
Aby prawidłowo uwzględnić rabat w obliczeniach, należy zastosować korektę w formule, zmieniając ją na:
= Table.AddColumn(#"Changed Type", "Total Price", each List.Product({[Quantity], [Price], 1- [Discount]}), type number)
Taki zapis spowoduje, że dla każdej z wartości zostanie odjęty rabat (1 - Rabat), co pozwoli uzyskać poprawny wynik. Dla pierwszego wiersza Power Query obliczy 5 * 5 * (1 – 0), a dla drugiego 5 * 5, ponieważ w przypadku rabatu null wynik 1 – null zostanie zignorowany przez funkcję List.Product. W ten sposób otrzymujemy oczekiwany rezultat, który jest bardziej zgodny z założeniami.
Dalsza analiza wyników ujawnia, że w trzecim wierszu pojawia się liczba z czterema miejscami po przecinku. Biorąc pod uwagę, że pracujemy z cenami, warto zaokrąglić te liczby do dwóch miejsc po przecinku. W Power Query można to zrobić w następujący sposób:
-
Zaznaczamy kolumnę z obliczoną ceną (Total Price).
-
Wybieramy opcję "Zaokrąglij" z karty "Transformacja".
-
Ustawiamy liczbę miejsc dziesiętnych na 2 i zatwierdzamy.
Taki zabieg pozwala na uzyskanie wyników z dwoma miejscami po przecinku, co jest standardem przy pracy z cenami w raportach.
Po zaokrągleniu wyników pozostaje nam jeszcze jeden krok – optymalizacja procesu obliczania ceny. Choć Power Query oferuje intuicyjny interfejs, w którym można wykonać wszystkie te operacje krok po kroku, z czasem warto poznać sposób pracy z kodem M, który pozwala na zrealizowanie tych samych obliczeń w jednej formule. Na przykład, zamiast korzystać z kilku kroków (dodanie kolumny, zaokrąglenie, itd.), możemy stworzyć nową kolumnę za pomocą formuły niestandardowej, która wykorzystuje zarówno mnożenie, jak i funkcję zaokrąglania w jednym kroku:
Number.Round(List.Product({[Quantity], [Price], 1- [Discount]}), 2)
Po utworzeniu tej formuły i wstawieniu jej w oknie "Kolumna niestandardowa" Power Query stworzy nową kolumnę, w której obliczone ceny będą już zaokrąglone do dwóch miejsc po przecinku. Należy pamiętać, że po utworzeniu nowej kolumny, Power Query nie przypisuje automatycznie typu danych dla tej kolumny. W związku z tym warto dodać odpowiednią konwersję typu, aby upewnić się, że dane są przechowywane w odpowiednim formacie, np. type number.
Kiedy będziemy mieli już odpowiednią kolumnę z obliczonymi cenami, możemy przejść do dalszego przetwarzania danych, np. usunięcia kolumn z danymi pierwotnymi (Ilość, Cena, Rabat), które nie będą już potrzebne. Na tym etapie dane są gotowe do załadowania do Excela, gdzie będą mogły być użyte do dalszej analizy lub raportowania.
Pamiętajmy jednak, że najważniejszym aspektem jest zrozumienie, jak działa każda funkcja w Power Query i jak efektywnie wykorzystać jej potencjał do wykonywania obliczeń w sposób precyzyjny i optymalny. Niezależnie od tego, czy zaczynamy od prostych operacji, czy przechodzimy do bardziej zaawansowanych formuł, warto poświęcić czas na naukę i eksperymentowanie z różnymi funkcjami, co pozwoli nam zaoszczędzić czas i uniknąć błędów w przyszłości.

Deutsch
Francais
Nederlands
Svenska
Norsk
Dansk
Suomi
Espanol
Italiano
Portugues
Magyar
Polski
Cestina
Русский