0
0 Produkty w koszyku

No products in the cart.

Obliczanie poziomu w hierarchii pracowników może znacząco usprawnić zarządzanie strukturą organizacyjną firmy i analizę zależności między pracownikami. W tym artykule pokażę, jak wykorzystać Power Query i rekurencję do automatycznego określania, na którym poziomie hierarchii znajduje się każdy pracownik, co pozwoli na lepszą wizualizację struktury organizacyjnej i efektywniejsze podejmowanie decyzji kadrowych.

Dzięki tej metodzie unikniesz czasochłonnego ręcznego liczenia poziomów hierarchii, szczególnie w większych organizacjach o złożonych strukturach.

W moim wideo pokazuję krok po kroku, jak stworzyć funkcję rekurencyjną w Power Query, która automatycznie obliczy poziom hierarchiczny każdego pracownika:

Zrozumienie problemu hierarchii pracowników

Zanim przejdziemy do technicznego rozwiązania, warto dokładnie zrozumieć problem, który chcemy rozwiązać. W wielu organizacjach istnieje struktura hierarchiczna oparta na poleceniach lub mentorstwie, gdzie każdy pracownik (poza najwyższym szczeblem) ma osobę, która go poleciła lub jest jego przełożonym. Określenie, na którym poziomie hierarchii znajduje się dana osoba, jest kluczowe dla zrozumienia struktury organizacyjnej.

W naszym przykładzie mamy tabelę z danymi pracowników, gdzie każdy pracownik ma swoje ID oraz ID osoby polecającej. Osoba na samym szczycie hierarchii nie ma osoby polecającej (wartość null). Przyjmujemy, że ta osoba jest na poziomie 0 hierarchii. Każda kolejna osoba w dół hierarchii ma poziom o 1 wyższy niż osoba, która ją poleciła.

Na przykład, jeśli Jan (ID 1) jest na poziomie 0, a Anna (ID 2) została polecona przez Jana, to Anna jest na poziomie 1. Jeśli Tomasz (ID 5) został polecony przez Annę, to jest on na poziomie 2, itd. Ręczne liczenie tych poziomów byłoby pracochłonne, szczególnie w dużych organizacjach, dlatego zastosujemy automatyzację z użyciem Power Query.

Tworzenie funkcji rekurencyjnej w Power Query

Aby rozwiązać nasz problem, stworzymy funkcję rekurencyjną, która będzie wywoływać samą siebie, aż dojdzie do najwyższego poziomu hierarchii. Rekurencja to technika, w której funkcja wywołuje samą siebie z różnymi parametrami, aż do osiągnięcia warunku końcowego.

Rozpoczynamy od pobrania naszej tabeli z danymi pracowników do Power Query. Następnie tworzymy nowe puste zapytanie, które przekształcimy w naszą funkcję:

  1. Z karty "Dane" wybieramy "Z tabeli/zakresu", aby pobrać naszą tabelę do Power Query
  2. W Power Query, z karty "Narzędzia główne", rozwijamy "Nowe źródło", wybieramy "Inne źródła", a następnie "Puste zapytanie"
  3. Przechodzimy do Edytora zaawansowanego, aby wpisać kod naszej funkcji

Kod naszej funkcji rekurencyjnej będzie wyglądał następująco:

Implementacja funkcji poziom hierarchii

Funkcja, którą tworzymy, przyjmuje dwa parametry: ID osoby, dla której chcemy obliczyć poziom hierarchii, oraz tabelę z danymi wszystkich pracowników. Oto jak działa:

  1. Wyszukujemy wiersz z danymi osoby o podanym ID
  2. Sprawdzamy, kto jest osobą polecającą (ID osoby powyżej w hierarchii)
  3. Jeśli nie ma osoby polecającej (wartość null), zwracamy 0 (najwyższy poziom hierarchii)
  4. W przeciwnym razie wywołujemy tę samą funkcję dla osoby polecającej i dodajemy 1 do wyniku

Ta funkcja będzie się wywoływać rekurencyjnie, przesuwając się w górę hierarchii, aż dojdzie do osoby bez przełożonego (najwyższy szczebel), a następnie zacznie zwracać wyniki, dodając 1 na każdym poziomie zejścia w hierarchii.

Po utworzeniu funkcji musimy zmienić jej nazwę z domyślnej "Zapytanie 1" na bardziej opisową, np. "poziom_hierarchii", co pozwoli nam łatwiej się do niej odwoływać.

Zastosowanie funkcji do obliczenia poziomów hierarchii

Teraz, gdy mamy już zdefiniowaną funkcję, możemy ją zastosować do naszej tabeli z pracownikami, aby obliczyć poziom hierarchii dla każdego z nich. W tym celu:

Przechodzimy do zapytania z naszą tabelą pracowników (w przykładzie nazwane "lista osób") i dodajemy nową kolumnę, używając opcji "Wywołanie funkcji niestandardowej". Wybieramy naszą funkcję poziom_hierarchii i podajemy odpowiednie parametry:

  1. Jako pierwszy parametr podajemy kolumnę ID z naszej tabeli
  2. Jako drugi parametr chcemy podać całą tabelę, ale nie możemy jej bezpośrednio wybrać z listy
  3. Tymczasowo wybieramy dowolną kolumnę i zatwierdzamy
  4. Następnie edytujemy formułę w pasku formuł, zastępując odwołanie do kolumny odwołaniem do wcześniejszego kroku (czyli do całej tabeli)

Po zatwierdzeniu formuły, Power Query obliczy poziom hierarchii dla każdego pracownika w tabeli. Możemy zweryfikować poprawność wyników, sprawdzając kilka przykładów:

  • Jan (ID 1, bez osoby polecającej) — poziom 0
  • Anna (ID 2, polecona przez Jana) — poziom 1
  • Tomasz (ID 5, polecony przez Annę) — poziom 2
  • Paweł (polecony przez Tomasza) — poziom 3

Testowanie i weryfikacja funkcji

Po zaimplementowaniu naszej funkcji i zastosowaniu jej do tabeli pracowników, ważne jest, aby przetestować jej działanie i upewnić się, że zwraca prawidłowe wyniki. Możemy to zrobić, zmieniając dane w naszej tabeli źródłowej i sprawdzając, czy poziomy hierarchii zostaną odpowiednio zaktualizowane.

Na przykład, jeśli zmienimy osobę polecającą dla Pawła z ID 5 (Tomasz, poziom 2) na ID 8 (inny pracownik na poziomie 3), to poziom hierarchii Pawła powinien zmienić się na 4. Po zapisaniu zmian i odświeżeniu zapytania, możemy sprawdzić, czy nasz obliczony poziom hierarchii został prawidłowo zaktualizowany.

Takie dynamiczne obliczanie poziomów hierarchii jest szczególnie przydatne w organizacjach, gdzie struktura często się zmienia. Dzięki naszej funkcji rekurencyjnej w Power Query, nie musimy ręcznie aktualizować poziomów za każdym razem, gdy ktoś zmienia przełożonego lub gdy dochodzą nowi pracownicy.

Korzyści z automatycznego obliczania poziomów hierarchii

Automatyczne obliczanie poziomów hierarchii za pomocą Power Query przynosi wiele korzyści dla organizacji:

  • Oszczędność czasu — nie trzeba ręcznie liczyć poziomów hierarchii
  • Eliminacja błędów ludzkich — obliczenia są zawsze poprawne
  • Łatwa aktualizacja — wystarczy odświeżyć zapytanie po zmianie danych
  • Skalowalność — działa równie dobrze dla małych i dużych organizacji
  • Możliwość wykorzystania w dalszych analizach — np. do tworzenia wizualizacji struktury organizacyjnej

Znając poziom hierarchii każdego pracownika, możemy łatwo tworzyć raporty i analizy uwzględniające strukturę organizacyjną, co jest niezwykle przydatne dla działów HR i kadry zarządzającej.

Podsumowanie

W tym artykule pokazałem, jak wykorzystać Power Query i rekurencję do automatycznego obliczania poziomu hierarchii pracowników w organizacji. Dzięki stworzonej funkcji możemy szybko i bezbłędnie określić, na którym poziomie w strukturze organizacyjnej znajduje się każdy pracownik, co znacznie usprawnia zarządzanie i analizę danych kadrowych.

Ta technika jest szczególnie przydatna w większych organizacjach o złożonych strukturach hierarchicznych, gdzie ręczne określanie poziomów byłoby czasochłonne i podatne na błędy. Pamiętajmy, że Power Query oferuje wiele możliwości automatyzacji i optymalizacji pracy z danymi, a rekurencja jest jednym z potężnych narzędzi, które możemy wykorzystać do rozwiązywania złożonych problemów.