Hierarchien sind immer eine Herausforderung bei Datenanalysen – besonders, wenn sie nicht balanciert sind. Beispiele gibt es viele: Organisations-Hierarchien, Kostenstellen-Strukturen oder Stücklisten. Power Pivot hilft uns, mit Hierarchien umzugehen – mit PATH().

Die Organisations-Struktur der IdeeFix GmbH

Der Einfachheit halber legen wir in Excel ein paar Testdatensätze an und verknüpfen die Daten mit Power Pivot. Es sind die Mitarbeiter der IdeeFix GmbH und deren jeweiliger Umsatz. Zum besseren Verständnis ist der Umsatz einfach immer 1 EUR. Der Umsatz eines Mitarbeiters soll bei einer Auswertung immer auch dem Vorgesetzen zugeordnet werden – und wiederum dessen Vorgesetzten. Die ID des jeweiligen Vorgesetzten schreiben wir in die Spalten “VorgesetzterID”: Liste von Mitarbeitern

PATH()

Wir legen eine berechnete Spalte an und verwenden die PATH()-Funktion:

Power Pivot baut den Pfad bis zum Vorgesetzten – getrennt mit “|”: PATH-Darstellung der Hierachie Damit ist die vollständige, rekursive Pfad-Information bis zum Vorgesetzen pro Zeile verfügbar. Was fangen wir jetzt aber damit an?

PATHITEM()

Mit der Funktion PATHITEM() kann man mit Hilfe der vorher ermittelten Pfad-Information für jede Stufe die ID ermitteln – beispielsweise in zwei neu berechneten Spalten Level 1 + 2:

PATHITEM()

Für die Lesbarkeit: LOOKUPVALUE()

Die Funktion LookupValue() wurde bereits in einem anderen Blog-Eintrag beschrieben. Zusammen mit den PATH()-Funktionen leistet sie uns hier gute Dienste. Mittels LOOKUPVALUE() bestimmen wir an Stelle der ID den zugehörigen Namen des Vorgesetzen: PATHITEM mit LookupValue

Hierarchien bilden

In der Diagramm-Darstellung markieren wir die vier neuen Spalten und bilden eine Hierarchie: Hierarchie erstellen Legen wir jetzt eine Pivot-Tabelle an, können wir die Hierarchie direkt als Dimension verwenden. Mit dem Umsatz als summiertem Fakt erhält man folgende Pivot-Tabelle: Hierarchie in der Pivot Tabelle

Weitere PATH-Funktionen

  • PATHCONTAINS(): gibt zurück, ob sich ein bestimmtes Element im PATH befindet
  • PATHITEMREVERSE(): sucht ein genanntes Element, wobei im Gegensatz zu PATHITEM nicht von vorne, sondern von hinten angefangen wird zu zählen
  • PATHLENGTH(): gibt die Länge des Pfades wieder

Sie möchten PATH() noch tiefergehender verstehen? Machen Sie mit diesem Artikel weiter.