Sdílet prostřednictvím


Principy funkcí pro hierarchie nadřazených a podřízených v DAX

DAX poskytuje pět funkcí, které uživatelům pomůžou spravovat data, která jsou ve svých modelech prezentována jako hierarchie nadřazených a podřízených. Díky těmto funkcím může uživatel získat celou rodokmen nadřazeného řádku, kolik úrovní má rodokmen nejvyšší nadřazený prvek, který je nadřazenou n-úrovní nad aktuálním řádkem, který je n-následníkem z horní části aktuální hierarchie řádků a je určitým nadřazeným objektem v aktuální hierarchii řádků?

Funkce nadřazenosti a podřízenosti v DAX

Následující tabulka obsahuje Parent-Child hierarchii sloupců: EmployeeKey a ParentEmployeeKey, která se používá ve všech příkladech funkcí.

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

V tabulce výše vidíte, že zaměstnanec 112 nemá definovaný žádný rodič, zaměstnanec 14 má zaměstnance 112 jako manažer (ParentEmployeeKey), zaměstnanec 3 má zaměstnance 14 jako vedoucí a zaměstnanci 11, 13 a 162 mají zaměstnance 3 jako vedoucí. Výše uvedené informace pomáhají pochopit, že zaměstnanec 112 nemá nad sebou vedoucího a ona/on je nejvyšší manažer pro všechny zaměstnance, kteří jsou zde uvedeni; zaměstnanci 3 také hlásí zaměstnancům 14 a zaměstnancům 11, 13, 162 zprávy na 3.

Následující tabulka obsahuje dostupné funkce, stručný popis funkce a příklad funkce nad stejnými daty uvedenými výše.

PATH funkce – vrátí text s oddělovači s identifikátory všech nadřazených prvků aktuálního řádku počínaje nejstarším nebo nejvyšším až aktuálním řádkem.

EmployeeKey ParentEmployeeKey Cesta
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 funkce – vrátí počet úrovní v daném PATH(), počínaje aktuální úrovní až do nejstarší nebo nejvyšší nadřazené úrovně. V následujícím příkladu sloupec PathLength je definován jako "= PATHLENGTH([Path])"; Příklad obsahuje všechna data z příkladu Path(), která vám pomůžou pochopit, jak tato funkce funguje.

EmployeeKey ParentEmployeeKey Cesta 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 funkce – vrátí položku na zadané pozici z výsledku PATH(), počítá se zleva doprava. V následujícím příkladu sloupce PathItem - 4th from left is defined as '= PATHITEM([Path], 4)'; v tomto příkladu se vrátí Funkce EmployeKey na čtvrté pozici v řetězci Path zleva pomocí stejných ukázkových dat z příkladu Path().

EmployeeKey ParentEmployeeKey Cesta PathItem – 4. zleva
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 funkce – vrátí položku v position z výsledku PATH(), jako je výsledek funkce, počítání zpět zprava doleva. V následujícím příkladu sloupce PathItemReverse – třetí zprava je definován jako "= PATHITEMREVERSE([Path], 3)"; tento příklad vrátí funkci EmployeKey na třetí pozici v řetězci Path zprava pomocí stejných ukázkových dat z příkladu Path().

EmployeeKey ParentEmployeeKey Cesta PathItemReverse – třetí zprava
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 funkce – vrátí TRUE, pokud zadaný item existuje v zadaném path. V následujícím příkladu sloupce PathContains - employee 162 je definován jako '= PATHCONTAINS([Path], "162")'; tento příklad vrátí TRUE, pokud daná cesta obsahuje zaměstnance 162. Tento příklad používá výsledky z výše uvedeného příkladu Path().

EmployeeKey ParentEmployeeKey Cesta PathContains – zaměstnanec 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