Förstå funktioner för överordnade och underordnade hierarkier i DAX
DAX innehåller fem funktioner som hjälper användarna 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 Parent-Child hierarki för 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.
PATH funktion – 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 | Stig |
---|---|---|
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 |
PATHLENGTH funktion – 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 exempelkolumn 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 | Stig | 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 |
PATHITEM funktion – Returnerar objektet på den angivna positionen från en 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)
"; I det här exemplet returneras EmployeKey på fjärde plats i sökvägssträngen från vänster med samma exempeldata från Path()-exemplet.
EmployeeKey | ParentEmployeeKey | Stig | 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 |
PATHITEMREVERSE funktion – 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)
"; I det här exemplet returneras EmployeKey på tredje plats i sökvägssträngen från höger, med samma exempeldata från Path()-exemplet.
EmployeeKey | ParentEmployeeKey | Stig | 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 |
PATHCONTAINS funktion – returnerar TRUE
om den angivna item
finns inom den angivna path
. 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 | Stig | PathContains – anställd 162 |
---|---|---|---|
112 | 112 | FALSE |
|
14 | 112 | 112|14 | FALSE |
3 | 14 | 112|14|3 | FALSE |
11 | 3 | 112|14|3|11 | FALSE |
13 | 3 | 112|14|3|13 | FALSE |
162 | 3 | 112|14|3|162 | TRUE |
117 | 162 | 112|14|3|162|117 | TRUE |