Förstå funktioner för överordnade och underordnade hierarkier i DAX

DAX innehåller fem funktioner som hjälper användare att hantera data som visas som en överordnad-underordnad hierarki i sina modeller. Med de här funktionerna kan en användare hämta hela ursprunget för överordnade rader som en rad har, hur många nivåer har ursprunget till den överordnade överordnad, vem är den överordnade n-nivån ovanför den aktuella raden, vem är n-underordnade från toppen av den aktuella radhierarkin och är viss överordnad i den aktuella radhierarkin?

Överordnad-underordnade funktioner i DAX

Följande tabell innehåller en överordnad-underordnad hierarki i kolumnerna: EmployeeKey och ParentEmployeeKey som används i alla funktionsexempel.

EmployeeKey ParentEmployeeKey
112
14 112
3 14
11 3
13 3
162 3
117 162
221 162
81 162

I tabellen ovan ser du att medarbetare 112 inte har någon överordnad definierad, medarbetare 14 har medarbetare 112 som chef (ParentEmployeeKey), medarbetare 3 har medarbetare 14 som chef och anställda 11, 13 och 162 har medarbetare 3 som chef. Ovanstående hjälper till att förstå att medarbetare 112 inte har någon chef över sig och att hon/han är den högsta chefen för alla anställda som visas här; personal 3 rapporterar till medarbetare 14 och anställda 11, 13, 162 rapporterar till 3.

I följande tabell visas tillgängliga funktioner, en kort beskrivning av funktionen och ett exempel på funktionen över samma data som visas ovan.

FUNKTIONEN PATH – Returnerar en avgränsad text med identifierarna för alla överordnade till den aktuella raden, från och med den äldsta eller översta tills den är aktuell.

EmployeeKey ParentEmployeeKey Sökväg
112 112
14 112 112|14
3 14 112|14|3
11 3 112|14|3|11
13 3 112|14|3|13
162 3 112|14|3|162
117 162 112|14|3|162|117
221 162 112|14|3|162|221
81 162 112|14|3|162|81

FUNKTIONEN PATHLENGTH – Returnerar antalet nivåer i en viss PATH(), som börjar på aktuell nivå till den äldsta eller översta överordnade nivån. I följande exempel definieras PathLength som '= PATHLENGTH([Path])'. Exemplet innehåller alla data från Path()-exemplet för att förstå hur den här funktionen fungerar.

EmployeeKey ParentEmployeeKey Sökväg PathLength
112 112 1
14 112 112|14 2
3 14 112|14|3 3
11 3 112|14|3|11 4
13 3 112|14|3|13 4
162 3 112|14|3|162 4
117 162 112|14|3|162|117 5
221 162 112|14|3|162|221 5
81 162 112|14|3|162|81 5

FUNKTIONEN PATHITEM – Returnerar objektet på den angivna positionen från ett PATH() som resultat, räknat från vänster till höger. I följande exempelkolumn definieras PathItem – 4:e från vänster som '= PATHITEM([Path], 4)'. Det här exemplet returnerar EmployeKey på fjärde plats i sökvägssträngen från vänster med samma exempeldata från Path()-exemplet.

EmployeeKey ParentEmployeeKey Sökväg PathItem – 4:e från vänster
112 112
14 112 112|14
3 14 112|14|3
11 3 112|14|3|11 11
13 3 112|14|3|13 13
162 3 112|14|3|162 162
117 162 112|14|3|162|117 162
221 162 112|14|3|162|221 162
81 162 112|14|3|162|81 162

FUNKTIONEN PATHITEMREVERSE – Returnerar objektet vid position från ett PATH() som funktionsresultat och räknar bakåt från höger till vänster.
I följande exempelkolumn definieras PathItemReverse – 3:e från höger som '= PATHITEMREVERSE([Path], 3)'. Det här exemplet returnerar EmployeKey på tredje plats i sökvägssträngen från höger med samma exempeldata från Path()-exemplet.

EmployeeKey ParentEmployeeKey Sökväg PathItemReverse – 3:e från höger
112 112
14 112 112|14
3 14 112|14|3 112
11 3 112|14|3|11 14
13 3 112|14|3|13 14
162 3 112|14|3|162 14
117 162 112|14|3|162|117 3
221 162 112|14|3|162|221 3
81 162 112|14|3|162|81 3

FUNKTIONEN PATHCONTAINS – Returnerar TRUE om det angivna objektet finns inom den angivna sökvägen. I följande exempelkolumn definieras PathContains – employee 162 som '= PATHCONTAINS([Path], "162")'. Det här exemplet returnerar TRUE om den angivna sökvägen innehåller medarbetare 162. I det här exemplet används resultaten från path()-exemplet ovan.

EmployeeKey ParentEmployeeKey Sökväg PathContains – anställd 162
112 112 FALSKT
14 112 112|14 FALSKT
3 14 112|14|3 FALSKT
11 3 112|14|3|11 FALSKT
13 3 112|14|3|13 FALSKT
162 3 112|14|3|162 Sant
117 162 112|14|3|162|117 Sant