Del via


Forstå funksjoner for overordnede underordnede hierarkier i DAX

DAX inneholder fem funksjoner som hjelper brukere med å behandle data som presenteres som et overordnet-underordnet-hierarki i modellene sine. Med disse funksjonene kan en bruker få hele avstammingen av foreldre en rad har, hvor mange nivåer som har avstammingen til den øverste overordnede, som er overordnede n-nivåer over gjeldende rad, hvem er n-etterkommeren fra toppen av gjeldende radhierarki og er en overordnet overordnet i gjeldende radhierarki?

Overordnede og underordnede funksjoner i DAX

Tabellen nedenfor inneholder et Parent-Child hierarki i kolonnene: EmployeeKey og ParentEmployeeKey som brukes i alle eksemplene på funksjoner.

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

I tabellen ovenfor kan du se at ansatt 112 ikke har noen overordnet definert, ansatt 14 har ansatt 112 som leder (ParentEmployeeKey), ansatt 3 har ansatt 14 som leder og ansatte 11, 13 og 162 har ansatt 3 som leder. Ovennevnte bidrar til å forstå at ansatt 112 ikke har noen leder over henne/ham, og hun/han er den øverste lederen for alle ansatte som vises her; Også ansatte 3 rapporterer til ansatte 14 og ansatte 11, 13, 162 rapport til 3.

Tabellen nedenfor viser de tilgjengelige funksjonene, en kort beskrivelse av funksjonen og et eksempel på funksjonen over de samme dataene som vises ovenfor.

PATH-funksjonen – Returnerer en tekst med skilletegn med identifikatorene for alle overordnede til gjeldende rad, og starter med den eldste eller øverste mest til gjeldende.

EmployeeKey ParentEmployeeKey Sti
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-funksjonen – Returnerer antall nivåer i en gitt PATH(), som starter på gjeldende nivå til det eldste eller øverste overordnede nivået. I eksemplet nedenfor er kolonnen PathLength definert som '= PATHLENGTH([Path])'; Eksemplet inneholder alle data fra Path()-eksemplet for å forstå hvordan denne funksjonen fungerer.

EmployeeKey ParentEmployeeKey Sti 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-funksjonen – Returnerer elementet på den angitte plasseringen fra et PATH() som resultat, og teller fra venstre mot høyre. I følgende eksempel kolonne PathItem - fjerde fra venstre er definert som '= PATHITEM([Path], 4)'; Dette eksemplet returnerer EmployeKey på fjerde plass i banestrengen fra venstre, ved hjelp av de samme eksempeldataene fra path()-eksemplet.

EmployeeKey ParentEmployeeKey Sti PathItem - fjerde fra venstre
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-funksjonen – Returnerer elementet på position fra et PATH() som funksjonsresultat, og teller bakover fra høyre mot venstre. I eksemplet nedenfor er kolonnen PathItemReverse – 3. fra høyre definert som '= PATHITEMREVERSE([Path], 3)'; Dette eksemplet returnerer EmployeKey på tredje posisjon i banestrengen fra høyre, ved hjelp av de samme eksempeldataene fra path()-eksemplet.

EmployeeKey ParentEmployeeKey Sti PathItemReverse – 3. fra høyre
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-funksjonen – returnerer TRUE hvis den angitte item finnes i den angitte path. I eksemplet nedenfor er kolonne PathContains – ansatt 162 definert som '= PATHCONTAINS([Path], "162")'; Dette eksemplet returnerer TRUE hvis den angitte banen inneholder ansatt 162. Dette eksemplet bruker resultatene fra Bane()-eksemplet ovenfor.

EmployeeKey ParentEmployeeKey Sti PathContains – ansatt 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