Förstå funktioner med ”överordnad-underordnad”-hierarkier i DAX
I DAX finns fem funktioner som hjälper användare att hantera data som presenteras i en ”överordnad-underordnad”-hierarki i sina modeller. Med de här funktionerna kan en användare erhålla hela ursprunget för överordnade för en rad, hur många nivåer det är till den högsta överordnade, vilka som är de överordnade n nivåerna ovanför den aktuella raden, vem som är n underordnad från toppen av den aktuella radhierarkin och om en viss överordnad är en överordnad i den aktuella radhierarkin.
Funktioner för överordnad-underordnad 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 kan vi se att ingen överordnad har definierats för medarbetare 112 och att medarbetare 14 har 112 som chef (ParentEmployeeKey), medarbetare 3 har medarbetare 14 som chef och medarbetarna 11, 13 och 162 har medarbetare 3 som chef. Med informationen ovan förstår vi att medarbetare 112 inte har någon chef över sig och att medarbetaren är högsta chef för alla medarbetare som visar här. Och vi ser att medarbetare 3 rapporterar till medarbetare 14 och att medarbetarna 11, 13 och 162 rapport till medarbetare 3.
I följande tabell visas tillgängliga funktioner, en kort beskrivning av funktionen och ett exempel på funktionen för samma data som visas ovan.
Funktionen PATH – returnerar en avgränsad text med identifierarna för alla överordnade till den aktuella raden, med den äldsta eller översta först till den aktuella.
| 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 given PATH() med den äldsta eller översta först. I följande exempel definieras kolumnen PathLength som = PATHLENGTH([Path]). Exemplet innehåller alla data från Path()-exemplet för att det ska bli lättare 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å angiven position från ett PATH()-liknande resultat, räknat från vänster till höger. I följande exempel definieras PathItem – 4:e från vänster som = PATHITEM([Path], 4). I det här exemplet returneras EmployeKey vid den fjärde positionen i Path-strängen från vänster med samma exempeldata som i 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()-liknande resultat, räknat bakåt från höger till vänster.
I följande exempel definieras PathItemReverse – 3:e från höger som = PATHITEMREVERSE([Path], 3). I det här exemplet returneras EmployeKey vid den tredje positionen i Path-strängen från höger med samma exempeldata som i 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 angiven path. I följande exempel definieras PathContains – medarbetare 162 som . I det här exemplet returneras TRUE om den angivna sökvägen innehåller = PATHCONTAINS([Path], "162") medarbetare 162. = PATHCONTAINS([Path], "162") I det här exemplet används resultatet från Path()-exemplet ovan.
| EmployeeKey | ParentEmployeeKey | Sökväg | PathContains – medarbetare 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 |