Compartir a través de


Descripción de las funciones de las jerarquías de elementos primarios y secundarios en DAX

DAX proporciona cinco funciones para ayudar a los usuarios a administrar los datos que se presentan como una jerarquía de elementos primarios y secundarios en sus modelos. Con estas funciones, un usuario puede obtener todo el linaje de los elementos primarios que tiene una fila, ¿cuántos niveles tienen el linaje al primario superior, quién es el n-niveles primarios por encima de la fila actual, quién es el n-descendiente de la parte superior de la jerarquía de filas actual y es cierto primario en la jerarquía de filas actual?

Funciones de elementos primarios y secundarios en DAX

La tabla siguiente contiene una jerarquía de Parent-Child en las columnas: EmployeeKey y ParentEmployeeKey que se usa en todos los ejemplos de funciones.

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

En la tabla anterior puede ver que el empleado 112 no tiene definido ningún padre, el empleado 14 tiene empleado 112 como administrador (ParentEmployeeKey), el empleado 3 tiene empleado 14 como administrador y los empleados 11, 13 y 162 tienen empleado 3 como administrador. Lo anterior ayuda a comprender que el empleado 112 no tiene ningún jefe por encima de ella y ella/él es el jefe superior para todos los empleados que se muestran aquí; además, el empleado 3 informa al empleado 14 y a los empleados 11, 13, 162 a 3.

En la tabla siguiente se presentan las funciones disponibles, una breve descripción de la función y un ejemplo de la función sobre los mismos datos mostrados anteriormente.

PATH función: devuelve un texto delimitado con los identificadores de todos los elementos primarios de la fila actual, empezando por el más antiguo o superior hasta el actual.

EmployeeKey ParentEmployeeKey Camino
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 función: devuelve el número de niveles de un PATHdeterminado (), comenzando en el nivel actual hasta el nivel primario más antiguo o superior. En la siguiente columna de ejemplo PathLength se define como "= PATHLENGTH([Path])"; El ejemplo incluye todos los datos del ejemplo Path() para ayudar a comprender cómo funciona esta función.

EmployeeKey ParentEmployeeKey Camino 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 función: devuelve el elemento en la posición especificada de un PATH() como resultado, contando de izquierda a derecha. En la siguiente columna de ejemplo PathItem - 4th from left se define como "= PATHITEM([Path], 4)"; en este ejemplo se devuelve la clase EmployeKey en la cuarta posición de la cadena Path de la izquierda, utilizando los mismos datos de ejemplo del ejemplo Path().

EmployeeKey ParentEmployeeKey Camino PathItem- 4th de izquierda
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 función: devuelve el elemento en position de un PATH() como resultado de la función, contando hacia atrás de derecha a izquierda. En la siguiente columna de ejemplo PathItemReverse - 3rd de la derecha se define como "= PATHITEMREVERSE([Path], 3)"; en este ejemplo se devuelve la clase EmployeKey en la tercera posición de la cadena Path de la derecha, utilizando los mismos datos de ejemplo del ejemplo Path().

EmployeeKey ParentEmployeeKey Camino PathItemReverse- 3rd desde la derecha
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 función: devuelve TRUE si el item especificado existe dentro del pathespecificado. En la siguiente columna de ejemplo PathContains - employee 162 se define como "= PATHCONTAINS([Path], "162")"; este ejemplo devuelve TRUE si la ruta de acceso especificada contiene el empleado 162. En este ejemplo se usan los resultados del ejemplo Path() anterior.

EmployeeKey ParentEmployeeKey Camino PathContains: empleado 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