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

DAX proporciona cinco funciones para ayudar a los usuarios a administrar los datos presentados como una jerarquía de elementos primarios y secundarios en sus modelos. Con estas funciones, un usuario puede obtener el linaje completo de elementos primarios que tiene una fila, cuántos niveles tiene el linaje hasta el elemento primario superior, quién es el elemento primario n niveles por encima de la fila actual, quién es el descendiente n desde la parte superior de la jerarquía de filas actual y si un determinado elemento primario es un elemento primario de la jerarquía de filas actual.

Funciones de elementos primarios y secundarios en DAX

La tabla siguiente contiene una jerarquía de elementos primarios y secundarios 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 ningún elemento primario definido, el empleado 14 tiene al empleado 112 como jefe (ParentEmployeeKey), el empleado 3 tiene al empleado 14 como jefe y los empleados 11, 13 y 162 tienen al empleado 3 como jefe. Lo anterior ayuda a comprender que el empleado 112 no tiene ningún jefe por encima, sino que es el jefe superior de todos los empleados que se muestran aquí; además, el empleado 3 depende del empleado 14 y los empleados 11, 13 y 162 depende del 3.

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

Función PATH: devuelve un texto delimitado con los identificadores de todos los elementos primarios para la fila actual, a partir del más antiguo o superior hasta el actual.

EmployeeKey ParentEmployeeKey Ruta de acceso
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

Función PATHLENGTH: devuelve el número de niveles de un argumento PATH() determinado a partir del nivel actual hasta el nivel primario más antiguo o superior. En el ejemplo siguiente, la columna PathLength se define como "= PATHLENGTH([Path])"; en el ejemplo se incluyen todos los datos del ejemplo de Path() para ayudar a comprender cómo funciona esta función.

EmployeeKey ParentEmployeeKey Ruta de acceso 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

Función PATHITEM: devuelve el elemento situado en la posición especificada de un resultado similar a PATH(), contando de izquierda a derecha. En el ejemplo siguiente, la columna PathItem - 4th from left se define como "= PATHITEM([Path], 4)"; en este ejemplo se devuelve el argumento EmployeKey situado en la cuarta posición de la cadena Path desde la izquierda, con los mismos datos de ejemplo del ejemplo de Path().

EmployeeKey ParentEmployeeKey Ruta de acceso PathItem - 4th from left
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

Función PATHITEMREVERSE: devuelve el elemento situado en position de un resultado de función similar a PATH(), contando hacia atrás de derecha a izquierda.
En el ejemplo siguiente, la columna PathItemReverse - 3rd from right se define como "= PATHITEMREVERSE([Path], 3)"; en este ejemplo se devuelve el argumento EmployeKey situado en la tercera posición de la cadena Path desde la derecha, con los mismos datos del ejemplo de Path().

EmployeeKey ParentEmployeeKey Ruta de acceso PathItemReverse - 3rd from right
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

Función PATHCONTAINS: devuelve TRUE si el elemento especificado existe en la ruta de acceso indicada. En el ejemplo siguiente, la columna PathContains - employee 162 se define como "= PATHCONTAINS([Path], "162")"; en este ejemplo se devuelve TRUE si la ruta de acceso dada contiene el empleado 162. En este ejemplo se usan los resultados del ejemplo de Path() anterior.

EmployeeKey ParentEmployeeKey Ruta de acceso PathContains - employee 162
112 112 FALSO
14 112 112|14 false
3 14 112|14|3 FALSO
11 3 112|14|3|11 FALSO
13 3 112|14|3|13 FALSO
162 3 112|14|3|162 VERDADERO
117 162 112|14|3|162|117 VERDADERO