Obliczanie poziomu w hierarchii pracowników przy pomocy Power Query

Czasami zachodzi potrzeba obliczenia poziomu w hierarchii. Może to dotyczyć zarówno struktury organizacyjnej (np. liczby przełożonych), jak i struktury projektu, gdzie należy określić, w ilu zadaniach nadrzędnych zawiera się analizowane zadanie.

spreadsheet-analysis-laptop.jpg

W tym artykule rozważymy strukturę organizacji (Rysunek 1), która zawiera osoby z różnych działów i na różnych stanowiskach. Wyznaczymy poziom w hierarchii pracownika z pomocą Power Query i stworzonej przez nas funkcji rekurencyjnej (funkcji, która będzie uruchamiać samą siebie).

Ręczne podejście

Jeśli musielibyśmy obliczyć ręcznie poziomy w hierarchii, nasze podejście dla przykładowej Joanny Maj (Manager IT, Id=6) wyglądałoby mniej więcej tak:

  1. Odnalezienie wiersza z analizowanym pracownikiem.
  2. Sprawdzenie ID przełożonego dla Joanny => 3.
  3. Zwiększenie poziomu hierarchii o 1.
  4. Odnalezienie wiersza z przełożonym (Rafał Pawłowski).
  5. Sprawdzenie ID przełożonego dla Rafała => 1.
  6. Zwiększenie poziomu hierarchii o 1.
  7. Odnalezienie wiersza z przełożonym (Adam Nowicki).
  8. Sprawdzenie ID przełożonego dla Adama => pusta komórka (nie ma przełożonego).
  9. Zakończenie procesu => zakładając, że Prezes jest na 1 poziomie hierarchii, to w trakcie ręcznej analizy zwiększyliśmy poziom hierarchii dwukrotnie. Oznacza to, że Joanna Maj jest na trzecim poziomie hierarchii w firmie.

Możemy zaobserwować, że przy podejściu ręcznym mamy powtarzające się czynności:

  1. Szukanie wiersza pracownika/przełożonego.
  2. Sprawdzanie ID przełożonego.
  3. Zwiększanie poziomu hierarchii.

Jest to pętla czynności, które musimy systematycznie powtarzać. Z doświadczeń programistów wiemy, że każda pętla musi mieć warunek wyjścia, żeby nie wykonywać się w nieskończoność. W naszym przykładzie jest nim odnalezienie pracownika, dla którego kolumna ID przełożonego jest pusta (w Power Query znajduje się w niej wartość null).

Załadowanie danych do Power Query

Po przeprowadzeniu analizy czynności możemy przejść do pobrania danych do Power Query i napisania funkcji z kodem M, który przekształca opis, na konkretne funkcje/przekształcenia.

Żeby załadować dane z tabeli Excela do Edytora Power Query, zaznaczamy w niej pojedynczą komórkę, a następnie na karcie Dane klikamy w polecenie „Z tabeli/zakresu” (Rysunek 2).

Jego kliknięcie spowoduje załadowanie tabeli do Power Query. W większości sytuacji do zapytania zostanie dodany automatycznie krok wykrywający typy danych, ale nie jest istotny dla uzyskania poprawnego wyniku, więc nawet jeśli krok się nie doda, możemy przejść do dalszych przekształceń.

W pierwszej kolejności warto pamiętać zmienić domyślną nazwę zapytania (StrukturaFirmy – nazwa tabeli, z której zostały pobrane dane) na bardziej odpowiadającą oczekiwanemu wynikowi, np.: Hierarchia.

W kolejnym kroku rozpoczynamy tworzenie funkcji niestandardowej w języku M. Ten proces zaczynamy od dodania pustego zapytania, czyli na karcie Narzędzia główne edytora Power Query rozwijamy polecenie „Nowe źródło”, przechodzimy do elementu „Inne źródła” i wybieramy opcję „Puste zapytanie” (Rysunek 3).

Wykorzystałeś swój limit bezpłatnych treści

Pozostałe 62% artykułu dostępne jest dla zalogowanych użytkowników portalu. Zaloguj się, wybierz plan abonamentowy albo kup dostęp do artykułu/dokumentu.

Kilka wariantów prenumeraty Pokaż opcje
Dwutygodniowy dostęp bez zobowiązań Wybieram

Abonament już od 102 zł miesięcznie

Dwutygodniowy dostęp bez zobowiązań

Pełen dostęp do wszystkich treści portalu
to koszt 102 zł miesięcznie
przy jednorazowej płatności za rok

WYBIERAM

Dwutygodniowy dostęp do wszystkich treści
portalu za 99 zł netto, które odliczymy od ceny
regularnej przy przedłużeniu abonamentu

WYBIERAM

Pełen dostęp do wszystkich treści portalu
to koszt 102 zł miesięcznie
przy jednorazowej płatności za rok

Dwutygodniowy dostęp do wszystkich treści
portalu za 99 zł netto, które odliczymy od ceny
regularnej przy przedłużeniu abonamentu

WYBIERAM

Polityka cookies

Dalsze aktywne korzystanie z Serwisu (przeglądanie treści, zamknięcie komunikatu, kliknięcie w odnośniki na stronie) bez zmian ustawień prywatności, wyrażasz zgodę na przetwarzanie danych osobowych przez EXPLANATOR oraz partnerów w celu realizacji usług, zgodnie z Polityką prywatności. Możesz określić warunki przechowywania lub dostępu do plików cookies w Twojej przeglądarce.

Usługa Cel użycia Włączone
Pliki cookies niezbędne do funkcjonowania strony Nie możesz wyłączyć tych plików cookies, ponieważ są one niezbędne by strona działała prawidłowo. W ramach tych plików cookies zapisywane są również zdefiniowane przez Ciebie ustawienia cookies. TAK
Pliki cookies analityczne Pliki cookies umożliwiające zbieranie informacji o sposobie korzystania przez użytkownika ze strony internetowej w celu optymalizacji jej funkcjonowania, oraz dostosowania do oczekiwań użytkownika. Informacje zebrane przez te pliki nie identyfikują żadnego konkretnego użytkownika.
Pliki cookies marketingowe Pliki cookies umożliwiające wyświetlanie użytkownikowi treści marketingowych dostosowanych do jego preferencji, oraz kierowanie do niego powiadomień o ofertach marketingowych odpowiadających jego zainteresowaniom, obejmujących informacje dotyczące produktów i usług administratora strony i podmiotów trzecich. Jeśli zdecydujesz się usunąć lub wyłączyć te pliki cookie, reklamy nadal będą wyświetlane, ale mogą one nie być odpowiednie dla Ciebie.