Obecnie na rynku coraz popularniejsze stają się programy do analizy biznesowej, dzięki którym możesz łatwiej niż kiedykolwiek zarządzać danymi, których wolumen rośnie w bardzo dużym tempie. Może się wydawać, że używanie tych programów to coś trudnego. Praktyka pokazuje, że są one tworzone w taki sposób, aby nawet użytkownik bez posiadania specjalistycznej wiedzy potrafił szybko i sprawnie przekształcać dane na swoje potrzeby.
W tym artykule skupimy się na jednej z wielu możliwości narzędzia Power Query, które znajdziesz zarówno w Excelu jak i Power BI. Konkretnie poruszymy temat Kolumny warunkowej (ang. Conditional column) oraz funkcji IF, która to – jak się okaże w dalszej części artykułu – jest nierozerwalnie związana z kolumną warunkową.
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 Power BI , dzięki którym zrozumiesz i zobaczysz na własne oczy jak proste może być korzystanie z Power Query!
Jeśli potrafisz pisać formuły w Excelu to na pewno znasz funkcję JEŻELI, czyli najpopularniejszą funkcję logiczną jaka istnieje, w angielskiej wersji pod nazwą IF. Jej zasada działania opiera się na sprawdzeniu warunku logicznego, którego wynikiem może być jedna z wartości logicznych: PRAWDA lub FAŁSZ. Gdy taki warunek jest już sprawdzony następuje wybór jednego z dwóch rozwiązań, albo tego, które wpisaliśmy dla warunku prawdziwego, albo tego, które wpisaliśmy dla warunku fałszywego.
Składniowo wygląda to następująco:
JEŻELI(test_logiczny;wartość_jeżeli_prawda;[wartość_jeżeli_fałsz])
Natomiast jest to funkcja napisana zgodnie z zasadami tworzenia funkcji w Excelu. W Power Query jest trochę inaczej, ponieważ za pisanie funkcji odpowiada język M, tutaj w inny sposób zapisuje się formuły, mimo to logika pozostaje ta sama.
Odpowiednik funkcji JEŻELI w języku M wygląda następująco:
if if-condition then true-expression else false-expression
Jak widać na powyższym przykładzie kolejność zapisu jest identyczna, z tym że nie mamy ani nawiasów, ani średników, a także pojawiają się słowa kluczowe then oraz else.
Bohater naszego artykułu, czyli kolumna warunkowa to nic innego jak funkcja if, z tą różnicą, że używając kolumny warunkowej będziemy klikać w narzędziu, natomiast pod spodem (z punktu widzenia języka M) i tak tworzona będzie wspomniana funkcja.
Jeśli chcesz dowiedzieć się więcej na temat samego języka M koniecznie sprawdź ten artykuł!
Dane jakimi dysponujemy przedstawiają zestaw zamówień złożonych przez konkretnych klientów, z przypisanymi do nich sprzedawcami, wartością zamówienia, numerem ID zamówienia oraz rodzajem przesyłki – normalna lub ekspres. Wycinek bazy przedstawiamy na grafice poniżej:
Pierwszym zadaniem będzie stworzenie nowej kolumny, w której pojawi się informacja o grupie. Przyporządkowanie będzie bardzo proste, jeśli sprzedawca to Bochenek pojawić ma się nazwa Grupa 1, w przeciwnym wypadku Grupa 2. Rozwiązanie wykonane w Power Query przedstawia poniższa animacja:
Jak doskonale widać stworzenie takiej kolumny to raptem parę kliknięć, wartym odnotowania jest natomiast finalna formuła w pasku formuły. Poniżej przeklejona składnia naszej funkcji:
if [Sprzedawca] = „Bochenek” then „Grupa 1” else „Grupa 2”
Drugim zadaniem jest stworzyć kolumnę, w której pojawi się przedział kwotowy na podstawie wartości zamówienia. Nasze grupy prezentują się następująco:
0,00-50,00 |
50,01-500,00 |
500,01-1000,00 |
>=1000,01 |
Rozwiązanie będzie polegało na napisaniu kilku zagnieżdżonych jeżeli, za każdym razem sprawdzać będziemy czy wartość mieści się w pierwszym przedziale – jeśli tak to mamy wynik – jeśli nie to sprawdzimy kolejny przedział i tak dalej.
Wykonanie w Power Query dalej będzie opierać się o kolumnę warunkową i dodawanie kolejnych klauzul. Przykład poniżej:
Trzecie rozwiązanie będzie bardziej skomplikowane, ponieważ postaramy się sprawdzić warunki z różnymi zależnościami pomiędzy nimi – tutaj do gry wejdą operatory logiczne and i or. Ten przykład jest już zbyt trudny, aby wykonać go kolumną warunkową, natomiast wciąż będzie bazował na funkcji if. W takich sytuacjach możemy posłużyć się kolumną niestandardową, dzięki której będziemy mogli samodzielnie napisać formułę z wykorzystaniem języka M.
Do stworzenia jest kolumna, która wyświetli słowo Priorytet pod warunkiem, że Klient to Clifford Srini lub przesyłka ma status Ekspres oraz Wartość zamówienia jest powyżej 100. Mamy tutaj do sprawdzenia w sumie trzy warunki, z czego dwa ostatnie muszą występować jednocześnie, a pierwszy może lecz nie musi występować.
Pisząc formułę będziemy wykorzystywać nazwy kolumn z naszej tabeli oraz operatory logiczne if, and oraz or.
Wykonanie poniżej:
Finalna funkcja:
if [Klient] = „Clifford Srini” or ([Przesyłka] = „Ekspres” and [Wartość zamówienia] > 100) then „Priorytet” else „”
Zagadnienia przedstawione w artykule miały na celu przybliżyć Ci narzędzie jakim jest kolumna warunkowa, ale przede wszystkim wytłumaczyć, że prawie wszystko co robimy w Power Query jest tak naprawdę zapisane za pomocą jakiejś funkcji. Bardzo wiele da się wyklikać, natomiast jeśli potrzebujemy rozbudowywać nasze rozwiązania, wtedy z pomocą przychodzi język M – warunkiem jest jednak poznać logikę działania danego przykładu – tutaj była to znana wszystkim funkcja if.
Po więcej informacji na temat programów z rodziny Power czy różnych innych przydatnych narzędzi zapraszamy na jedno z naszych szkoleń, dzięki którym nie tylko dowiesz się więcej, ale również przetestujesz wszystkie rozwiązania w praktyce!